Stacktrace completo:
➜ ~ 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
No mesmo servidor, executei pip install virtualenv
com sucesso o python 2.7.x.
Agora, eu acabei de instalar o python3.4 usando 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
também lança o mesmo erro
python
python-3.x
centos
pip
ericn
fonte
fonte
LANG=en_GB.utf8
Respostas:
A causa principal é: sua variável de ambiente
LC_ALL
está ausente ou é inválida de alguma formaResposta curta-
basta executar o seguinte comando:
Se você continuar recebendo o erro nas novas janelas do terminal, adicione-o na parte inferior do seu
.bashrc
arquivo.Resposta longa-
Aqui estão as minhas
locale
configurações:Python2.7
fonte
export LC_ALL=C
ajudei.LC_ALL=C
significa, veja aqui .Execute o seguinte comando (funcionará):
fonte
dpkg-reconfigure
comando é destinado ao uso em sistemas baseados em Debian. Esta questão é marcado comcentos
, um derivado RHEL que não fornecem suporte para dpkg a menos que você permitir que oepel-release
repositório, e instalar osdpkg-devel
edpkg-dev
pacotes. Mesmo assim, essa não é uma solução ideal.Alguém pode achar útil. Você pode colocar essas configurações de localidade no arquivo .bashrc, que geralmente está localizado no diretório inicial.
Apenas adicione este comando no .bashrc:
export LC_ALL=C
e digite
source .bashrc
Agora você não precisa chamar esse comando manualmente todas as vezes, ao conectar via ssh, por exemplo.
fonte
Enquanto você pode definir o código do idioma exportando uma variável env, você precisará fazer isso toda vez que iniciar uma sessão. Definir um código de idioma dessa maneira resolverá o problema permanentemente:
fonte
sudo
a mesma linha que tenta instalá-lo?sudo apt-get install ... sudo ...
[Esta resposta é direcionada apenas na plataforma Linux]
A primeira coisa que você deve saber é que a maior parte do caminho localizado no arquivo de configuração de localidade pode ser obtida em
localedef --help
:Veja o último
/usr/share/i18n
? É aqui que o seu arquivo de configuração xx_XX.UTF-8 está localizado:O que agora ? Precisamos compilá-los no arquivo binário. Por um lado, por exemplo, suponha que eu tenha
/usr/share/i18n/locales/en_LOVE
, posso adicioná-lo à lista de compilação, ou seja,/etc/locale-gen
arquivo:E compile-o para o binário com
sudo locale-gen
:E agora atualize o código do idioma padrão do sistema com o desejado
LANG
,LC_ALL
etc., com esteupdate-locale
:update-locale
na verdade, também significa atualizar esse/etc/default/locale
arquivo, que será originado pelo sistema no login para configurar variáveis de ambiente:Mas podemos não querer reiniciar para entrar em vigor, portanto, podemos apenas fornecê-lo para a variável de ambiente na atual sessão do shell:
Que tal
sudo dpkg-reconfigure locales
? Se você brincar com isso, você saberá que este comando age basicamente como GUI para simplificar as etapas acima, ou seja, Editar/etc/locale.gen
->sudo locale-gen
->sudo update-locale LANG=en_LOVE.UTF-8
Para python, contanto que
/etc/locale.gen
esse candidato locale elocale.gen
seja compilado,setlocale(category, locale)
deve funcionar sem lançamentoslocale.Error: unsupoorted locale setting
. Você pode verificar a sequência corretaen_US.UTF-8
/en_US/....etc
a ser configuradasetlocale()
, observando o/etc/locale.gen
arquivo e, em seguida, remova o comentário e compile-a conforme desejado.zh_CN GB2312
sem ponto nesse arquivo significa que a string correta ézh_CN
ezh_CN.GB2312
.fonte
/etc/locale.gen
, descomente azh_CN.UTF-8
linha; 2.sudo locale-gen
.Para o Dockerfile, isso funciona para mim:
Como instalar o locale-gen?
docker ubuntu / bin / sh: 1: locale-gen: não encontrado
fonte
Eu tive o mesmo problema e não funcionou para mim .
"export LC_ALL=c"
Tente
export LC_ALL="en_US.UTF-8"
(funcionará).fonte
A mensagem de erro indica um problema com a configuração de localidade. Para corrigir isso conforme indicado por outras respostas, você precisa modificar seu código de idioma.
No Mac OS X Sierra, descobri que a melhor maneira de fazer isso era modificar o
~/bash_profile
arquivo da seguinte maneira:Esta mudança não será imediatamente evidente em sua sessão cli atual, a menos que você recarregar o perfil do bash usando:
source ~/.bash_profile
.Essa resposta está bem próxima das respostas que eu publiquei em outras perguntas não idênticas e não duplicadas (ou seja, não relacionadas ao pipenv), mas que exigem a mesma solução.
Para o moderador: Com respeito; minha resposta anterior foi excluída por esse motivo, mas acho que isso foi um pouco tolo, porque na verdade essa resposta se aplica quase sempre que o erro é "problema com o código do idioma" ... mas existem várias situações, idiomas e ambientes diferentes que podem desencadear esse erro.
Portanto, A) não faz sentido marcar as perguntas como duplicadas e B) não faz sentido adaptar a resposta também porque a correção é muito simples, é a mesma em cada caso e não se beneficia da ornamentação.
fonte
Ubuntu:
$ sudo vi /etc/default/locale
Adicione a configuração abaixo no final do arquivo.
LC_ALL = en_US.UTF-8
fonte