펠리칸 3.3 pelican-quickstart 오류“ValueError : unknown locale : UTF-8”


154

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는 OS X Mavericks입니다.


독불 장군에 kivy를 사용하는 동안 같은 문제가 없었다
Ciasto을 piekarz

답변:


456

여기 또는 여기에 게시 된 솔루션을 사용해 볼 수 있습니다 . 기본적으로 ~ / .bash_profile에 몇 줄을 추가하십시오.

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

이 문제와 관련 하여 뛰어난 버그 보고서가 있습니다. 파이썬은 보편적으로 유효하지 않은 로케일 이름의 형식에 대해 몇 가지 가정을하는 것으로 보입니다. 이러한 환경 변수를 명시 적으로 설정하는 것은 기본적으로 해당 버그의 해결 방법입니다.

[편집 :] @asmeurer가 올바르게 지적했듯이 위의 수정은 영어와 미국을 가정합니다. 목록에서 원하는 로케일을 선택해야합니다 locale -a(일반적으로로 끝나는 곳 UTF-8).


PC를 로그 아웃 / 로그인했습니다. 모두 감사합니다.
Jose Carlos Ramos Carmenates

8
이것은 물고기 껍질의 MAC OSX에서 아나콘다로도 문제를 해결했습니다. -x LC_ALL en_US.UTF-8 설정 set -x LANGen_US.UTF-8
andershqst

2
그것은 효과가 있었지만 왜 우리가 그것을 해야하는지 설명 할 수 있습니까?
jblixr

6
보다 편리 echo -e "export LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8" >> ~/.bashrc && source ~/.bashrc
하게이

2
이 픽스는 영어를 사용하고 미국에 거주하는 경우에만 정확합니다 (일반적으로이 문제를 보는 사람들에게는 해당되지 않음). 실제 수정은 LANG 로케일에 맞는 문자열 로 설정 하는 것입니다 ( locale -a일반적으로로 끝나는 문자열을 사용하여 로케일을 모두 나열 할 수 있음 ) UTF-8.
asmeurer

9

Gerrat의 답변은 효과가 있으며, 만약 당신이 같은 것을 사용한다면 또는 대신에 zsh줄을 추가 해야한다고 언급해야한다고 생각합니다~/.zshrc~/.bash_profile~/.bash_rc


9

위층의 답변은 빨리 훌륭했습니다! 그러나 나는 게으른 사람들이 다른 로그인 사용자로 변경하는 동안 다시는 절대 바뀌지 않을 경우를 대비하여 지구 환경을 바꾸고 싶다고 생각합니다. 따라서 다음과 같이 파일을 변경해야합니다.

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

3

이 질문에 대한 답변을 다시 게시하고 있습니다. 여기에 다시 있는데, 대한 중복으로 표시되어 있으며이 질문에 대한 대답은 여러면에서 잘못되었습니다.

이것은 특정 로케일 (국가 / 언어 조합)에만 나타나는 OS X 터미널 앱의 버그입니다. / 응용 프로그램 / 유틸리티에서 터미널을 열고 "시작시 로케일 환경 변수 설정"상자를 선택 취소하십시오.

여기에 이미지 설명을 입력하십시오

이것은 LANG환경 변수를 비 웁니다. 이로 인해 터미널 사용에 따라 로케일이 잘못 설정 될 수 있습니다. 터미널의 로케일 명령은 사용 된 설정을 알려줍니다. 올바른 언어를 사용하려면 bash 프로필에 줄을 추가하십시오 (일반적으로 ~/.profile)

export LANG=your-lang

교체 your-lang언어에 대한 올바른 로케일 지정자. 이 명령 locale -a은 모든 지정자를 보여줍니다. 예를 들어 미국 영어의 언어 코드는 en_US.UTF-8입니다. 로캘은 사용 가능한 번역이 사용되는 날짜 및 날짜, 통화 및 소수의 형식에 영향을줍니다.

이 이미지와 내용은 http://conda.pydata.org/docs/troubleshooting.html#unknown-locale 에서 가져온 것입니다 (저는 해당 페이지의 원래 저자이기도 함).


2

여기에 언급 된 솔루션 중 어느 것도 로컬 앱 엔진 환경에서 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_variablesapp.yaml 파일 에 명시 적으로 설정해야했습니다 .

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

그리고 그것은 버그를 해결했습니다.


1

어떤 이유로 나는 또한 필요했다 :

export LC_CTYPE=en_US.UTF-8

어떤 이유로 든, 내가 찾던 대답을 얻었습니다 ... 2 시간과 같습니다. 감사!
Kiwad
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.