Pelican 3.3 ошибка быстрого запуска pelican ValueError: неизвестный языковой стандарт: UTF-8

Когда я пытался использовать pelican3.3, я набрал команду "pelican-quickstart", появились некоторые ошибки.

Это ошибки:

(PelicanEnv)59-127-113-90:myblog Richo$ pelican-quickstart
Traceback (most recent call last):
  File "/Users/Richo/Dropbox/Github/PelicanEnv/bin/pelican-quickstart", line 9, in <module>
    load_entry_point('pelican==3.3', 'console_scripts', 'pelican-quickstart')()
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pkg_resources.py", line 378, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pkg_resources.py", line 2566, in load_entry_point
    return ep.load()
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pkg_resources.py", line 2260, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pelican/__init__.py", line 16, in <module>
    from pelican.generators import (ArticlesGenerator, PagesGenerator,
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pelican/generators.py", line 20, in <module>
    from pelican.readers import Readers
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pelican/readers.py", line 11, in <module>
    import docutils.core
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/core.py", line 20, in <module>
    from docutils import frontend, io, utils, readers, writers
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/frontend.py", line 41, in <module>
    import docutils.utils
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/utils/__init__.py", line 20, in <module>
    import docutils.io
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/io.py", line 18, in <module>
    from docutils.utils.error_reporting import locale_encoding, ErrorString, ErrorOutput
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/utils/error_reporting.py", line 47, in <module>
    locale_encoding = locale.getlocale()[1] or locale.getdefaultlocale()[1]
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/locale.py", line 513, in getdefaultlocale
    return _parse_localename(localename)
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/locale.py", line 445, in _parse_localename
    raise ValueError, 'unknown locale: %s' % localename
ValueError: unknown locale: UTF-8

Моя ОС — OS X Mavericks.


person Richo    schedule 13.11.2013    source источник
comment
была такая же проблема при использовании kivy на Mavericks   -  person Ciasto piekarz    schedule 07.02.2015


Ответы (6)


Вы можете попробовать решение, размещенное здесь или здесь. По сути, добавьте несколько строк в ваш ~/.bash_profile:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Существует незавершенный отчет об ошибке, связанный с этой проблемой. Похоже, что Python делает некоторые предположения о формате имен локалей, которые не являются общепризнанными. Явная установка этих переменных среды — это просто обходной путь для этой ошибки.

[Изменить:] Как правильно указывает @asmeurer, указанное выше исправление предполагает использование английского языка и США. Вам действительно следует выбрать предпочтительный язык из списка, указанного locale -a (обычно тот, который заканчивается на UTF-8).

person Gerrat    schedule 13.11.2013
comment
У меня был выход/вход в компьютер. Спасибо за все. - person Jose Carlos Ramos Carmenates; 19.07.2014
comment
Это решило проблему и для меня с анакондой на MAC OSX в рыбной оболочке. установить -x LC_ALL en_US.UTF-8 установить -x LANGen_US.UTF-8 - person andershqst; 27.10.2014
comment
Ломаю голову с 8 часов из-за того, что не установил это при создании проекта maven на моей MAC OS X Yosemite Version 10.10.1. Это по умолчанию в MAC OS X версии 10.10.3 моего друга. - person sumanth232; 04.06.2015
comment
Он продолжал получать ту же ошибку, поэтому я понял, что запускал команды, пока сервер все еще работал. Итак, сначала остановите сервер, а затем сделайте этот экспорт. И вы можете снова запустить сервер. - person Victor Augusto; 02.03.2016
comment
Это сработало, но кто-нибудь может объяснить, почему мы должны это делать? - person jblixr; 08.03.2016
comment
Вот одна строка, чтобы сделать это более удобно: echo -e "export LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8" >> ~/.bashrc && source ~/.bashrc - person waldyrious; 24.03.2016
comment
Это работает, но может ли кто-нибудь объяснить, почему это работает и есть ли побочный эффект :) - person BjornW; 30.06.2016
comment
Это исправление верно только в том случае, если вы говорите по-английски и живете в США (что обычно не относится к людям, которые видят эту проблему). Реальное решение состоит в том, чтобы установить LANG в правильную строку для вашей локали (вы можете перечислить их все с помощью locale -a), обычно используя ту, которая заканчивается на UTF-8. - person asmeurer; 11.08.2016

Ответ Геррата работает, и я считаю, что мы должны упомянуть, что если вы используете что-то вроде zsh, вы должны добавить строки в ~/.zshrc вместо ~/.bash_profile или ~/.bash_rc

person JasonWayne    schedule 08.04.2016

Ответы наверху были быстрыми! Но я считаю, что такие ленивые люди, как я, хотят изменить глобальную среду на случай, если она больше никогда не изменится при переходе к другому пользователю входа в систему. Итак, нам нужно изменить файл следующим образом:

sudo vi /etc/profile or sudo vi /etc/bashrc

А затем добавьте две строки в следующие файлы

export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"

Помните, не пропустите ни одного из них, у меня не работает только $LANG или $LC_ALL. После этого запустите команду, чтобы активировать среду.

sudo source /etc/profile 
sudo source /etc/bashrc
source ~/.bash_profile 
source ~/.zshrc

Опять же, ленивые вроде меня могут закончить команду в одну строку.

echo -e "export LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8" >> ~/.bash_profile && source ~/.bash_profile
person Sanjay Chan    schedule 04.08.2016

Я публикую свой ответ на этот вопрос здесь, так как он был помечен как дубликат этого, и принятый ответ на этот вопрос во многом неверен.

Это ошибка в приложении OS X Terminal, которая появляется только в определенных локалях (сочетаниях страны/языка). Откройте Терминал в /Applications/Utilities и снимите флажок «Установить переменные среды локали при запуске».

введите здесь описание изображения

Это сделает вашу переменную окружения LANG пустой. Это может привести к тому, что терминал будет использовать неправильные настройки для вашей локали. Команда locale в Терминале сообщит вам, какие настройки используются. Чтобы использовать правильный язык, добавьте строку в свой профиль bash (обычно ~/.profile)

export LANG=your-lang

Замените your-lang на правильный спецификатор локали для вашего языка. Команда locale -a покажет вам все спецификаторы. Например, код языка для американского английского — en_US.UTF-8. Языковой стандарт влияет на то, какие переводы используются, когда они доступны, а также на то, как форматируются даты, валюты и десятичные дроби.

Обратите внимание, что это изображение и содержимое были взяты с сайта http://conda.pydata.org/docs/troubleshooting.html#unknown-locale (я также являюсь автором этой страницы).

person asmeurer    schedule 18.08.2016

Ни одно из упомянутых здесь решений не помогло мне запустить проект Python 3.7 в локальной среде приложения.

Хотя я мог бы получить локаль через командную строку просто отлично:

python3 -c 'import locale; print(locale.getdefaultlocale());'
('en_US', 'UTF-8')  

Эта локаль не может быть найдена в среде ядра приложения:

File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/locale.py", line 568, in getdefaultlocale
    return _parse_localename(localename)
File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/locale.py", line 495, in _parse_localename
    raise ValueError('unknown locale: %s' % localename)
ValueError: unknown locale: UTF-8

Поэтому мне пришлось явно установить env_variables в моем файле app.yaml:

env_variables:
  LC_ALL: "en_US:UTF_8"
  LC_CTYPE: "en_US:UTF_8"

И это решило ошибку.

person Stiño    schedule 14.05.2019

По какой-то причине мне также понадобилось:

export LC_CTYPE=en_US.UTF-8
person Michiel Roos    schedule 08.12.2016
comment
По какой-то причине вы получили ответ, который я искал... прошло около 2 часов. Спасибо! - person JFK; 31.01.2019