Traza completa de la pila:
➜ ~ 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
En el mismo servidor, ejecuté pip install virtualenv
con Python 2.7.x.
Ahora, acabo de instalar 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
arroja el mismo error también
python
python-3.x
centos
pip
ericn
fuente
fuente
LANG=en_GB.utf8
Respuestas:
La causa raíz es: su variable de entorno
LC_ALL
falta o no es válida de alguna maneraRespuesta corta-
solo ejecuta el siguiente comando:
Si sigue recibiendo el error en nuevas ventanas de terminal, agréguelo al final de su
.bashrc
archivo.Respuesta larga-
Aquí está mi
locale
configuración:Python2.7
fuente
export LC_ALL=C
ayudé.LC_ALL=C
significa, mira aquí .Ejecute el siguiente comando (funcionará):
fuente
dpkg-reconfigure
comando está diseñado para su uso en sistemas basados en Debian. Esta pregunta está etiquetada concentos
un derivado RHEL que no proporciona soporte para dpkg a menos que habilite elepel-release
repositorio e instale los paquetesdpkg-devel
&dpkg-dev
. Incluso entonces, esta no es una solución ideal.Alguien puede encontrarlo útil. Puede poner esa configuración regional en el archivo .bashrc, que generalmente se encuentra en el directorio de inicio.
Simplemente agregue este comando en .bashrc:
export LC_ALL=C
luego escriba
source .bashrc
Ahora no necesita llamar a este comando manualmente cada vez, cuando se conecta a través de ssh, por ejemplo.
fuente
Si bien puede configurar el entorno local exportando una variable env, deberá hacerlo cada vez que inicie una sesión. Establecer una configuración regional de esta manera resolverá el problema de forma permanente:
fuente
sudo
en la misma línea que intentas instalarlo?sudo apt-get install ... sudo ...
[Esta respuesta es objetivo solo en la plataforma Linux]
Lo primero que debe saber es que la mayor parte de la ruta localizada del archivo de configuración local se puede obtener de
localedef --help
:¿Ves el último
/usr/share/i18n
? Aquí es donde se encuentra el archivo de configuración xx_XX.UTF-8:Ahora que ? Necesitamos compilarlos en archivo binario. Una de las formas, por ejemplo, supongo que sí
/usr/share/i18n/locales/en_LOVE
, puedo agregarlo a la lista de compilación, es decir,/etc/locale-gen
archivoY compilarlo en binario con
sudo locale-gen
:Y ahora actualice la configuración regional predeterminada del sistema con la deseada
LANG
,LC_ALL
... etc con estoupdate-locale
:update-locale
en realidad también significa actualizar este/etc/default/locale
archivo que se generará por sistema al iniciar sesión para configurar las variables de entorno:Pero es posible que no queramos reiniciar para que surta efecto, por lo que podemos obtenerlo en la variable de entorno en la sesión de shell actual:
¿Qué tal
sudo dpkg-reconfigure locales
? Si juegas, sabrás que este comando básicamente actúa como GUI para simplificar los pasos anteriores, es decir, Editar/etc/locale.gen
->sudo locale-gen
->sudo update-locale LANG=en_LOVE.UTF-8
Para python, siempre que
/etc/locale.gen
contenga ese candidato de configuración regional ylocale.gen
se compile,setlocale(category, locale)
debería funcionar sin lanzamientoslocale.Error: unsupoorted locale setting
. Puede verificar la cadena correctaen_US.UTF-8
/en_US/....etc
que se establecerásetlocale()
, observando el/etc/locale.gen
archivo, y luego descomentarlo y compilarlo como desee.zh_CN GB2312
sin punto en ese archivo significa que la cadena correcta eszh_CN
yzh_CN.GB2312
.fuente
/etc/locale.gen
, descomentar lazh_CN.UTF-8
línea; 2sudo locale-gen
..Para Dockerfile, esto funciona para mí:
¿Cómo instalar locale-gen?
docker ubuntu / bin / sh: 1: locale-gen: no encontrado
fuente
Tuve el mismo problema y no funcionó para mí .
"export LC_ALL=c"
Intenta
export LC_ALL="en_US.UTF-8"
(funcionará).fuente
El mensaje de error indica un problema con la configuración regional. Para solucionar esto como lo indican otras respuestas, debe modificar su configuración regional.
En Mac OS X Sierra descubrí que la mejor manera de hacerlo era modificar el
~/bash_profile
archivo de la siguiente manera:Este cambio no será inmediatamente evidente en la sesión de CLI actual a menos que vuelva a cargar el perfil de bash utilizando:
source ~/.bash_profile
.Esta respuesta está bastante cerca de las respuestas que he publicado en otras preguntas no idénticas, no duplicadas (es decir, no relacionadas con pipenv) pero que requieren la misma solución.
Al moderador: Con respeto; mi respuesta anterior se eliminó por esta razón, pero creo que fue un poco tonto porque realmente esta respuesta se aplica casi siempre que el error es "problema con la configuración regional" ... pero hay una serie de situaciones, idiomas y entornos diferentes que podrían desencadenar ese error
Por lo tanto, A) no tiene sentido marcar las preguntas como duplicadas y B) tampoco tiene sentido adaptar la respuesta porque la solución es muy simple, es la misma en cada caso y no se beneficia de la ornamentación.
fuente
Ubuntu:
$ sudo vi /etc/default/locale
Agregue la siguiente configuración al final del archivo.
LC_ALL = en_US.UTF-8
fuente