vertical una tamaño logaritmica linea grafico grafica fijar etiquetas escala ejes como cambiar ajustar python windows localization internationalization

python - una - fijar ejes matplotlib



¿Cuál es la forma correcta de establecer la configuración regional de Python en Windows? (6)

Estoy intentando ordenar una lista de cadenas de manera local. He utilizado la biblioteca de Babel para otras tareas relacionadas con i18n, pero no es compatible con la clasificación. El módulo locale de Python proporciona una función strcoll , pero requiere que la configuración regional del proceso se establezca en la que yo quiero trabajar. Es un poco doloroso, pero puedo vivir con eso.

El problema es que parece que realmente no puedo configurar la configuración regional. La documentation del módulo de locale proporciona este ejemplo:

import locale locale.setlocale(locale.LC_ALL, ''de_DE'')

Cuando corro eso, obtengo esto:

Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:/Python26/Lib/locale.py", line 494, in setlocale locale.Error: unsupported locale setting

¿Qué estoy haciendo mal?


Ubuntu

En Ubuntu puede tener este problema porque no tiene ese local instalado en su sistema.

Desde el shell prueba a:

$> locale -a

y compruebe si encuentra la configuración regional que le interesa. De lo contrario, debe instalarla:

$> sudo apt-get install language-pack-XXX

donde XXX es su idioma (en mi caso "xxx = it", localidad italiana) Luego ejecute dpkg-reconfigure :

$> sudo dpkg-reconfigure locales

Después de eso, inténtalo de nuevo en tu shell de python:

>>> import locale >>> locale.setlocale(locale.LC_ALL,''it_IT.UTF-8'')

(Esto es para locale italiano, que era lo que necesitaba)


De los documentos de locale.setlocale:

locale.setlocale(category, locale=None): """ Set the locale for the given category. The locale can be a string, an iterable of two strings (language code and encoding), or None. """"

Bajo Linux (especialmente Ubuntu) puedes usar

locale.setlocale(locale.LC_ALL, ''de_DE.UTF-8'')

o

locale.setlocale(locale.LC_ALL, (''de'', ''utf-8''))

Obtendrá el mismo error si la configuración regional no está instalada en el sistema. Por lo tanto, asegúrese de tener instalada la configuración regional en su sistema:

$ locale -a # to list the currently installed locales $ (sudo) locale-gen de_DE.UTF-8 # to install new locale


Esta es la única forma de hacerlo en Windows (ejemplo para la configuración regional alemana):

import locale locale.setlocale(category=locale.LC_ALL, locale="German") # Not locale="de_DE"


No debe pasar una configuración regional explícita a setlocale, es incorrecto. Déjalo saber del medio ambiente. Tienes que pasarlo una cadena vacía

import locale locale.setlocale(locale.LC_ALL, '''')


Parece que estás usando Windows. Las cadenas locales son diferentes allí. Eche un vistazo más preciso al documento:

locale.setlocale(locale.LC_ALL, ''de_DE'') # use German locale; name might vary with platform

En Windows, creo que sería algo así como:

locale.setlocale(locale.LC_ALL, ''deu_deu'')

MSDN tiene una lista de cadenas de idioma y de cadenas de país / región


Sé que esto se ha pedido hace años, pero pensé en intentar agregar lo que descubrí, usando Python 3.6 en Windows:

import locale for x in locale.windows_locale.values(): print(x.replace(''_'',''-''))

Intenté algunas y también parece ser una forma de averiguar qué hay disponible en Windows.

Y luego simplemente configura la configuración regional:

locale.setlocale(locale.LC_ALL, any_item_of_the_printed_strings)