unsupported spanish error python macos osx-snow-leopard locale

python - spanish - pip install django locale error unsupported locale setting



Python locale error extraño. ¿Qué está pasando aquí exactamente? (3)

Así que hoy actualicé a bazar 2.0.2 y comencé a recibir este mensaje (estoy en el leopardo de las nieves, por cierto):

bzr: warning: unknown locale: UTF-8 Could not determine what text encoding to use. This error usually means your Python interpreter doesn''t support the locale set by $LANG (en_US.UTF-8) Continuing with ascii encoding.

Muy extraño, ya que mi LANG está realmente vacío. Algo similar sucede cuando intento jugar con el módulo de configuración regional

Python 2.5.4 (r254:67916, Nov 30 2009, 14:09:22) [GCC 4.3.4] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import locale >>> locale.getdefaultlocale() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/sbo/runtimes/lib/python2.5/locale.py", line 443, in getdefaultlocale return _parse_localename(localename) File "/Users/sbo/runtimes/lib/python2.5/locale.py", line 375, in _parse_localename raise ValueError, ''unknown locale: %s'' % localename ValueError: unknown locale: UTF-8

exportar LANG no ayuda

sbo@dhcp-045:~ $ export LANG=en_US.UTF-8 sbo@dhcp-045:~ $ bzr bzr: warning: unknown locale: UTF-8 Could not determine what text encoding to use. This error usually means your Python interpreter doesn''t support the locale set by $LANG (en_US.UTF-8) Continuing with ascii encoding.

Sin embargo, esto solucionó el problema.

sbo@dhcp-045:~ $ export LANG=en_US.UTF-8 sbo@dhcp-045:~ $ export LC_ALL=en_US.UTF-8 Python 2.5.4 (r254:67916, Nov 30 2009, 14:09:22) [GCC 4.3.4] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import locale >>> locale.getdefaultlocale() (''en_US'', ''UTF8'')

¿Podría por favor explicar qué está pasando aquí, para una mejor googlabilidad?


ACTUALIZACIÓN 2016: Resulta que se trata de un error de Python desde al menos 2013, muy probablemente también antes, que consiste en que Python no reacciona bien a los entornos locales que no son GNU, como los que se encuentran en Mac OS X y los BSD. El error sigue abierto a partir de septiembre de 2016 y afecta a todas las versiones de Python.

Si no se estableció una variable de entorno LANG , es probable que haya una variable de entorno LC_CTYPE (la variable clave) o LC_ALL (que anula si se establece) establecida en UTF-8 , que no es una configuración regional válida de OS X. Es lo suficientemente fácil de reproducir con el /usr/bin/python suministrado por Apple o con un pitón personalizado, como en su caso, que se creó con el SDK 10.6 (probablemente también el SDK 10.5). No podrás reproducirlo de esa manera con python.org python; actualmente se crean con el SDK 10.4 donde las API de configuración regional se comportan de manera diferente.

$ unset LANG $ env | grep LC_ $ export LC_CTYPE="UTF-8" $ /usr/bin/python # Apple-supplied python Python 2.6.1 (r261:67515, Jul 7 2009, 23:51:51) [GCC 4.2.1 (Apple Inc. build 5646)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import locale ; locale.getdefaultlocale() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/locale.py", line 459, in getdefaultlocale return _parse_localename(localename) File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/locale.py", line 391, in _parse_localename raise ValueError, ''unknown locale: %s'' % localename ValueError: unknown locale: UTF-8 ^D $ /usr/local/bin/python2.6 # python.org python Python 2.6.4 (r264:75821M, Oct 27 2009, 19:48:32) [GCC 4.0.1 (Apple Inc. build 5493)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import locale ; locale.getdefaultlocale() (None, ''mac-roman'') >>>

EDITAR:

Puede haber otra pieza para el rompecabezas. Un vistazo rápido al bzr 2.0.1 que he instalado indica que el mensaje que cita solo debería aparecer si locale.getpreferredencoding() genera un locale.Error . Una forma en que puede suceder es si la extensión python _locale.so C no se puede cargar y eso puede suceder si hay problemas de permisos en ella. Por ejemplo, actualmente se sabe que MacPorts tiene problemas para establecer permisos si tiene una umask personalizada ; Yo mismo me he quemado por ese problema. Verifique los permisos de _locale.so en el _locale.so python lib/python2.5/lib-dynload y asegúrese de que sea 755 . La ruta completa para MacPorts debería ser:

/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/


Es un problema de Mac OS X. Para ver la configuración regional, ejecute la locale en el terminal. locale -a debe enumerar todas las configuraciones regionales que ha definido (que puede usar como argumento para LC_ALL).

Observe que LC_ALL y otras variables LC_* tienen prioridad sobre LANG cuando se definen.


Me enfrenté al mismo problema. Cuando ejecuté la locale , noté que LANG y LC_ALL estaban configurados. Así que lo arreglé agregando las siguientes líneas en el archivo .bash_profile :

export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8

Entonces simplemente corrí:

source ~/.bash_profile

Y este problema se solucionó a partir de entonces en mi Mac.