¿Por qué obtengo el siguiente error cuando hago esto en python:
>>> import locale
>>> print str( locale.getlocale() )
(None, None)
>>> locale.setlocale(locale.LC_ALL, 'de_DE')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/locale.py", line 531, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
Esto funciona con otros entornos locales como fr o nl también. Estoy usando Ubuntu 11.04.
Actualización: Hacer lo siguiente no produjo nada:
dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = (unset)
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
python
locale
ubuntu-11.04
Toom
fuente
fuente
de_DE
listado enlocale -a
? Si no, debes instalarlo .locale.setlocale(locale.LC_ALL, 'de_DE')
Está Mal. Es necesariolocale.setlocale(locale.LC_ALL, 'de_DE.utf8')
.locale.setlocale(locale.LC_ALL, locale.locale_aliases['de_DE'])
.Respuestas:
Ejecute los siguientes comandos
Resolverá esto.
Asegúrese de hacer coincidir la
.UTF-8
parte con la sintaxis real que se encuentra en la salida de,locale -a
por ejemplo,.utf8
en algunos sistemas.fuente
export LC_ALL="en_US.UTF-8"
falló con-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
Lo que funcionó fue hacer esto:export LC_ALL=C
De acuerdo con este enlace , se resolvió ingresando este comando:
fuente
LC_ALL
al valor'C'
, pero ¿por qué debería funcionar?Probablemente no tenga ninguna
de_DE
configuración regional disponible.Puede ver una lista de configuraciones regionales disponibles con el
locale -a
comando. Por ejemplo, en mi máquina:Tenga en cuenta que si desea establecer la configuración regional
it_IT
también debe especificar lo siguiente.utf8
:Para instalar un nuevo uso local:
donde
id
está el código de idioma (tomado de aquí )Después de instalar la configuración regional, debe seguir los consejos de Julien Palard y reconfigurar las configuraciones regionales con:
fuente
Una de las respuestas anteriores proporciona la solución:
El problema con la solución anterior es que debe hacerse en el shell de Linux. Sin embargo, si está proporcionando su código para trabajar en la máquina cliente, entonces este es un mal enfoque. También intenté ejecutar los comandos anteriores usando os.system (), pero aún así no funciona.
La solución que funcionó para mí es
fuente
Una solución más permanente sería completar los valores faltantes, en el resultado que se muestra mediante el comando:
locale
Salida de
locale
es:Para completar los valores faltantes, edite ~ / .bashrc:
Agregue las siguientes líneas después del comando anterior (suponga que desea que en_US.UTF-8 sea su idioma):
Si este archivo es de solo lectura, deberá seguir los pasos mencionados por The GeekyBoy . La respuesta dada por el Dr. Beco en Superuser tiene detalles relacionados con el almacenamiento de archivos de solo lectura.
Después de guardar el archivo hacer:
Ahora ya no se enfrentará al mismo problema.
fuente
Si está en un Debian (o bifurcación Debian), puede agregar configuraciones regionales usando:
fuente
dpkg-reconfigure locales
Te trae un menú de elección local como este: vpser.net/uploads/2013/01/dpkg-reconfigure-locales-1.jpg ?En Arch Linux pude arreglar esto ejecutando
sudo locale-gen
fuente
Para el registro, tuve el mismo problema, pero ninguna de las soluciones funcionó. Había actualizado mi computadora y migrado mi PC. Tenía un idioma mixto en inglés y español:
Pero, en mi nueva instalación de Debian, simplemente seleccioné inglés como locale. Lo que finalmente funcionó fue reconfigurar el paquete local para agregar y generar español también.
fuente
Simplemente abra el archivo .bashrc y agregue esto
y luego escriba source .bashrc en la terminal.
fuente
Su error dice claramente, está tratando de usar la localización algo que no estaba allí.
locale.Error: configuración regional no compatible
Para verificar la configuración disponible, use
locale -a
para que pueda usar uno entre
para
de_DE
Este archivo puede ajustarse manualmente o actualizarse usando la herramienta update-locale.
fuente
locale
para obtener qué configuración regional se utiliza. Como:/etc/locale-gen
archivo. No comentar a los usadoslocale-gen
para generar configuraciones regionales recién agregadasfuente
En mi opinión, la forma más fácil de configurar la configuración local en python {, 3} es:
Luego, las cosas con reconocimiento local simplemente funcionan, si estás en una distribución de Linux decente, y también deberían funcionar en distribuciones binarias de los otros sistemas operativos (o eso es un error en mi humilde opinión).
fuente
Colóquelo en la parte
Dockerfile
superiorENV
.fuente
locale
en la terminal u obtiene `LANG = en_US.UTF-8 y otra configuración regional? stackoverflow.com/questions/36394101/…Este error puede ocurrir si acaba de agregar una nueva configuración regional. Debe reiniciar el shell interactivo de python (
quit(
) ypython
) para acceder a él.fuente
Si fuera usted, usaría BABEL: http://babel.pocoo.org/en/latest/index.html
Tengo el mismo problema aquí con Docker, he intentado cada paso y no funcionó bien, siempre obteniendo un error de configuración regional, así que decidí usar BABEL, y todo funcionó bien.
fuente
Al tratar de hacer que Python escupiera nombres en una localidad específica , aterricé aquí con el mismo problema.
Al buscar la respuesta, las cosas se pusieron un poco místicas.
Encontré ese código de Python.
Y de hecho
locale.setlocale(locale.LC_TIME, 'en_DK.UTF-8')
funcionaUsando consejos aquí, probé más para ver qué hay disponible usando el código Python
cuyos rendimientos
De los cuales solo arriba está funcionando! Pero el
en_DK.UTF-8
no está en esta lista, aunque funciona. ¿¿Qué?? Y la lista de entornos locales generada por Python contiene muchos combos de da y DK, que estoy buscando, pero nuevamente no hay UTF-8 para da / DK ...Estoy en una distribución Point Linux (basada en Debian), y aquí
locale
dice, entre otras cosasLC_TIME="en_DK.UTF-8"
, que sé que funciona, pero no la configuración regional que necesito.locale -a
diceDefinitivamente necesito instalar otro entorno local , lo cual hice editando
/etc/locale.gen
, descomentando elda_DK.UTF-8 UTF-8
comando de línea y ejecuciónlocale-gen
Ahora
locale.setlocale(locale.LC_TIME, 'da_DK.UTF-8')
también funciona, y puedo obtener mis nombres de día y mes localizados.Mi concisión
Python: locale.locale_alias no es de ninguna ayuda para encontrar los locales disponibles !!!
Linux: es bastante fácil obtener una lista de configuración regional e instalar una nueva configuración regional. Mucha ayuda disponible.
Windows: He estado investigando un poco, pero nada concluyente. Sin embargo, hay publicaciones que conducen a respuestas, pero no he sentido la necesidad de buscarlas.
fuente
Si entiendo correctamente, la principal fuente de error aquí es la sintaxis exacta del nombre de la configuración regional. Especialmente porque parece diferir entre distribuciones. He visto mencionado aquí en diferentes respuestas / comentarios:
Aunque esto es obviamente lo mismo para un ser humano, lo mismo no se aplica a su algoritmo determinista estándar.
Entonces probablemente harás algo en la línea de:
fuente
python busca .UFT-8, pero probablemente tenga .utf8 intente instalar los paquetes .UFT-8 con sudo dpkg-reconfigure locales
fuente
primero, asegúrese de tener el paquete de idioma instalado haciendo:
fuente