[python] 펠리칸 3.3 pelican-quickstart 오류“ValueError : unknown locale : 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는 OS X Mavericks입니다.



답변

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

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

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

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


답변

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


답변

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

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


답변

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

이것은 특정 로케일 (국가 / 언어 조합)에만 나타나는 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 에서 가져온 것입니다 (저는 해당 페이지의 원래 저자이기도 함).


답변

여기에 언급 된 솔루션 중 어느 것도 로컬 앱 엔진 환경에서 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"

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


답변

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

export LC_CTYPE=en_US.UTF-8


답변