Pelican 3.3 pelican-quickstart error "ValueError: unknown locale: UTF-8"

Cuando estaba intentando usar pelican3.3, escribí el commend "pelican-quickstart", aparecieron algunos errores.

Estos son los errores:

(PelicanEnv)59-127-113-90:myblog Richo$ pelican-quickstart
Traceback (most recent call last):
  File "/Users/Richo/Dropbox/Github/PelicanEnv/bin/pelican-quickstart", line 9, in <module>
    load_entry_point('pelican==3.3', 'console_scripts', 'pelican-quickstart')()
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pkg_resources.py", line 378, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pkg_resources.py", line 2566, in load_entry_point
    return ep.load()
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pkg_resources.py", line 2260, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pelican/__init__.py", line 16, in <module>
    from pelican.generators import (ArticlesGenerator, PagesGenerator,
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pelican/generators.py", line 20, in <module>
    from pelican.readers import Readers
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/pelican/readers.py", line 11, in <module>
    import docutils.core
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/core.py", line 20, in <module>
    from docutils import frontend, io, utils, readers, writers
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/frontend.py", line 41, in <module>
    import docutils.utils
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/utils/__init__.py", line 20, in <module>
    import docutils.io
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/io.py", line 18, in <module>
    from docutils.utils.error_reporting import locale_encoding, ErrorString, ErrorOutput
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/site-packages/docutils/utils/error_reporting.py", line 47, in <module>
    locale_encoding = locale.getlocale()[1] or locale.getdefaultlocale()[1]
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/locale.py", line 513, in getdefaultlocale
    return _parse_localename(localename)
  File "/Users/Richo/Dropbox/Github/PelicanEnv/lib/python2.7/locale.py", line 445, in _parse_localename
    raise ValueError, 'unknown locale: %s' % localename
ValueError: unknown locale: UTF-8

Mi sistema operativo es OS X Mavericks.

Solución

Puedes probar una solución publicada aquí o aquí. Básicamente, añade algunas líneas a tu ~/.bash_profile:

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

Hay un bug report pendiente relacionado con este problema. Parece que Python hace algunas suposiciones sobre el formato de los nombres de configuración regional que no son universalmente válidas. Establecer explícitamente estas variables de entorno es básicamente una solución a este error.

Editar:] Como @asmeurer correctamente señala, la solución anterior asume Inglés y los EE.UU. Usted debe realmente elegir su configuración regional preferida de la lista dada por locale -a (por lo general uno que termina en UTF-8).

Comentarios (10)

La respuesta de Gerrat funciona, y creo que deberíamos mencionar que si usas algo como zsh, deberías añadir líneas a ~/.zshrc en lugar de a ~/.bash_profile o ~/.bash_rc.

Comentarios (0)

¡Arriba respuestas fueron rápidas genial! Pero creo que la gente perezosa como yo quieren cambiar el entorno global en caso de que nunca cambiar de nuevo, mientras que el cambio a otro usuario de inicio de sesión. Así que tenemos que cambiar el archivo como:

sudo vi /etc/profile or sudo vi /etc/bashrc

Y luego añadir las dos líneas en los siguientes archivos

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

Recuerda no omitir ninguna de ellas, a mi no me funciona solo $LANG o $LC_ALL. Después de eso ejecuta el comando para activar el entorno.

sudo source /etc/profile 
sudo source /etc/bashrc
source ~/.bash_profile 
source ~/.zshrc

De nuevo, los perezosos como yo pueden terminar en un comando de una línea.

echo -e "export LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8" >> ~/.bash_profile && source ~/.bash_profile
Comentarios (1)