Ошибка пеликан 3.3 пеликан-quickstart "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.
Ответы
Ответ 1
Вы можете попробовать решение, размещенное здесь или здесь. В принципе, добавьте некоторые строки в ваш файл ~/.bash_profile:
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
В этом выпуске представлен отчет об ошибке . Похоже, что Python делает некоторые предположения относительно формата имен локалей, которые не являются универсальными. Явное определение этих переменных среды в основном является обходным путем для этой ошибки.
[Edit:] Как правильно указывает @asmeurer, указанное исправление предполагает английский и США. Вы действительно должны выбрать свой предпочтительный язык из списка, указанного locale -a
(как правило, заканчивающийся UTF-8
).
Ответ 2
Ответ Gerrat работает, и я считаю, что следует упомянуть, что если вы используете somthing like zsh
, вы должны добавить строки в ~/.zshrc
вместо ~/.bash_profile
или ~/.bash_rc
Ответ 3
Наверху ответы были быстрыми! Но я считаю, что люди, ленивые, как я, хотят изменить глобальную среду, если никогда не изменятся снова, пока вы меняете другого пользователя. Поэтому нам нужно изменить файл следующим образом:
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
Ответ 4
Я переписываю свой ответ из этого вопроса здесь, так как он был отмечен как дубликат этого, и принятый ответ на этот вопрос неверен в много способов.
Это ошибка в приложении OS X Terminal, которое появляется только в определенных локалях (комбинации стран/языков). Откройте терминал в/Приложения/Утилиты и снимите флажок "Установить переменные среды локали при запуске".
![введите описание изображения здесь]()
Это приведет к тому, что ваша переменная среды 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 (я также являюсь оригинальным автором этой страницы).
Ответ 5
По какой-то причине мне также понадобилось:
export LC_CTYPE=en_US.UTF-8
Ответ 6
Ни одно из упомянутых здесь решений не помогло мне запустить проект 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
в моем файле env_variables
:
env_variables:
LC_ALL: "en_US:UTF_8"
LC_CTYPE: "en_US:UTF_8"
И это решило ошибку.