source

pip install - local.오류: 지원되지 않는 로케일 설정

manysource 2022. 10. 15. 09:59

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 virtualenvpython 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