pip install - local.오류: 지원되지 않는 로케일 설정
전체 스택 트레이스:
➜ ~ pip install virtualenv
Traceback (most recent call last):
File "/usr/bin/pip", line 11, in <module>
sys.exit(main())
File "/usr/lib/python3.4/site-packages/pip/__init__.py", line 215, in main
locale.setlocale(locale.LC_ALL, '')
File "/usr/lib64/python3.4/locale.py", line 592, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
같은 서버에서 정상적으로 실행되었습니다.pip install virtualenv
python 2.7.x 를 사용합니다.
이제 python3.4를 설치했습니다.curl https://bootstrap.pypa.io/get-pip.py | python3.4
.
➜ ~ pip --version
pip 8.1.1 from /usr/lib/python3.4/site-packages (python 3.4)
pip uninstall virtualenv
같은 에러를 발생시킵니다.
근본 원인은 환경 변수입니다.LC_ALL
어떻게든 누락되거나 무효인
단답-
다음 명령어를 실행합니다.
$ export LC_ALL=C
새 터미널 창에서 오류가 계속 발생할 경우 아래쪽에 추가합니다..bashrc
파일.
장황한 답변-
여기 제 것이 있습니다.locale
설정:
$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C
파이썬 2.7
$ uname -a
Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09) x86_64 GNU/Linux
$ python --version
Python 2.7.9
$ pip --version
pip 8.1.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
$ unset LC_ALL
$ pip install virtualenv
Traceback (most recent call last):
File "/usr/local/bin/pip", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/dist-packages/pip/__init__.py", line 215, in main
locale.setlocale(locale.LC_ALL, '')
File "/usr/lib/python2.7/locale.py", line 579, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
$ export LC_ALL=C
$ pip install virtualenv
Requirement already satisfied (use --upgrade to upgrade): virtualenv in /usr/local/lib/python2.7/dist-packages
다음 명령을 실행합니다(동작합니다).
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales
누군가 유용하다고 생각할지도 모른다.보통 홈 디렉토리에 있는 .bashrc 파일에 로케일 설정을 넣을 수 있습니다.
.bashrc에 다음 명령을 추가합니다.
export LC_ALL=C
그런 다음 입력합니다.source .bashrc
이제 ssh를 통해 연결하는 경우 등 매번 이 명령을 수동으로 호출할 필요가 없습니다.
env 변수를 내보내는 로케일을 설정할 수 있지만 세션을 시작할 때마다 이 작업을 수행해야 합니다.로케일을 이렇게 설정하면 문제가 영구적으로 해결됩니다.
sudo apt-get install locales
sudo locale-gen en_US.UTF-8
sudo echo "LANG=en_US.UTF-8" > /etc/default/locale
[이 답변은 Linux 플랫폼만을 대상으로 합니다]
가장 먼저 알아야 할 것은 대부분의 로케일컨피규레이션파일이 경로에서 취득할 수 있다는 것입니다.localedef --help
:
$ localedef --help | tail -n 5
System's directory for character maps : /usr/share/i18n/charmaps
repertoire maps: /usr/share/i18n/repertoiremaps
locale path : /usr/lib/locale:/usr/share/i18n
For bug reporting instructions, please see:
<https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>
마지막 보기/usr/share/i18n
여기가 당신의 xx_XX입니다.UTF-8 컨피규레이션파일 위치:
$ ls /usr/share/i18n/locales/zh_*
/usr/share/i18n/locales/zh_CN /usr/share/i18n/locales/zh_HK /usr/share/i18n/locales/zh_SG /usr/share/i18n/locales/zh_TW
자 이제는 뭐죠?아카이브 바이너리로 컴파일해야 해그 방법 중 하나는 예를 들어, 내가 다음 중 하나를/usr/share/i18n/locales/en_LOVE
컴파일 목록에 추가할 수 있습니다./etc/locale-gen
파일:
$ tail -1 /etc/locale.gen
en_LOVE.UTF-8 UTF-8
그리고 그걸 2진법으로 컴파일해서sudo locale-gen
:
$ sudo locale-gen
Generating locales (this might take a while)...
en_AG.UTF-8... done
en_AU.UTF-8... done
en_BW.UTF-8... done
...
en_LOVE.UTF-8... done
Generation complete.
시스템 기본 로케일을 원하는 로케일로 업데이트합니다.LANG
,LC_ALL
...이것 등update-locale
:
sudo update-locale LANG=en_LOVE.UTF-8
update-locale
실제로 이 정보를 갱신하는 것도 의미하고 있습니다./etc/default/locale
설정 환경 변수에 로그인하면 시스템별로 소스가 되는 파일:
$ head /etc/default/locale
# File generated by update-locale
LANG=en_LOVE.UTF-8
LC_NUMERIC="en_US.UTF-8"
...
다만, 유효하게 하기 위해서 재기동하고 싶지 않을 수 있습니다.따라서 현재 셸 세션의 환경변수에 소스를 지정하기만 하면 됩니다.
$ . /etc/default/locale
어때.sudo dpkg-reconfigure locales
이 명령어는 기본적으로 GUI로 동작하여 위의 단계를 단순화합니다.편집/etc/locale.gen
->sudo locale-gen
->sudo update-locale LANG=en_LOVE.UTF-8
비단뱀의 경우,/etc/locale.gen
이 로케일 후보와locale.gen
컴파일,setlocale(category, locale)
던지지 않고 작동해야 한다locale.Error: unsupoorted locale setting
올바른 문자열을 확인할 수 있습니다.en_US.UTF-8
/en_US/....etc
박히다setlocale()
관찰함으로써/etc/locale.gen
파일을 작성한 후 필요에 따라 압축을 풀고 컴파일합니다. zh_CN GB2312
이 파일에 점이 없는 경우 올바른 문자열은zh_CN
★★★★★★★★★★★★★★★★★」zh_CN.GB2312
.
Dockerfile의 경우 다음과 같이 처리됩니다.
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
local-gen 설치 방법
도커 ubuntu /bin/sh: 1: locale-gen: 찾을 수 없습니다.
저도 같은 문제가 있어서 일을 못 했어요.
해 봐(잘 될 거야)
에러 메세지는, 로케일 설정에 문제가 있는 것을 나타내고 있습니다.다른 답변에 나타난 것처럼 이 문제를 해결하려면 로케일을 변경해야 합니다.
X은 Mac OS X Sierra를 하는 것임을 .~/bash_profile
하다
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
은 다음 하여 bash 을 새로고침하지 한 에서 즉시 할 수 .source ~/.bash_profile
.
이 답변은 동일하지 않거나 중복되지 않은 다른 질문(즉, pipenv와 관련이 없는 질문)에 대한 답변에 매우 가깝지만 같은 솔루션이 필요합니다.
주최자에게:참고로, 이전 답변은 이 이유로 삭제되었지만, 이 답변은 거의 오류가 "로케일의 문제"일 때마다 적용되기 때문에 약간 어리석게 느껴집니다.그러나 이 에러를 일으킬 수 있는 상황, 언어, 환경은 매우 다양합니다.
따라서 A)는 문제를 중복으로 표시하고, B)는 수정이 매우 간단하고, 각 경우에 동일하며, 장식의 혜택을 받지 못하기 때문에 답변을 맞춤화하는 것도 의미가 없습니다.
Ubuntu:
$ sudo vi /etc/default/locale
파일 끝에 아래 설정을 추가합니다.
LC_ALL = en_US.UTF-8
Fedora에서도 같은 문제가 발생하였습니다.
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python3.10/locale.py", line 620, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
알고 보니 glibc-all-langpacks 패키지가 없었습니다.
dnf install -y glibc-all-langpacks
해결했습니다.
언급URL : https://stackoverflow.com/questions/36394101/pip-install-locale-error-unsupported-locale-setting
'source' 카테고리의 다른 글
MySQL 특정 결과를 회피하여 쿼리를 필터링하는 방법 (0) | 2022.10.15 |
---|---|
임의 오류 SQLOnTransientConnection예외:접속이 종료되었습니다. (0) | 2022.10.15 |
Larabel의 "soft_delete"는 MySQL에 인덱스가 필요합니까? (0) | 2022.10.15 |
중복된 키를 사용한 맵 구현 (0) | 2022.10.15 |
"u" 및 "r" 문자열 프리픽스는 정확히 어떤 역할을 하며 raw 문자열 리터럴은 무엇입니까? (0) | 2022.10.15 |