2013-11-13 2 views
151

Когда я пытался использовать pelican3.3, я набрал похвалу «pelican-quickstart», появились некоторые ошибки.Pelican 3.3 pelican-quickstart error "ValueError: unknown locale: UTF-8"

Эти ошибки:

(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.

+0

имел такую ​​же проблему при использовании kivy, на индивидуалистов –

ответ

452

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

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

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

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

+0

у меня был выход из системы/входа в систему компьютера. Спасибо за все. –

+9

@josecarlos: Вы могли просто запустить исходный файл ~/.bash_profile в терминале ... –

+8

Это решило проблему для меня тоже с anaconda на MAC OSX в рыбной раковине. set -x LC_ALL en_US.UTF-8 set -x LANGen_US.UTF-8 – andershqst

8

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

7

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

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 
+0

ничего себе это сработало! лень rox! благодаря! – user1372829

3

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

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

enter image description here

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

export LANG=your-lang 

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

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

0

По какой-то причине я также необходимо:

export LC_CTYPE=en_US.UTF-8