Après avoir installé la dernière version Mac OSX Anaconda 64 bits Python , je reçois toujours une ValueError lorsque je tente de démarrer le bloc-notes IPython.
Le démarrage d'ipython fonctionne correctement:
3-millerc-~:ipython
Python 2.7.3 |Anaconda 1.4.0 (x86_64)| (default, Feb 25 2013, 18:45:56)
Type "copyright", "credits" or "license" for more information.
IPython 0.13.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
Mais à partir du cahier ipython:
4-millerc-~:ipython notebook
Résultats dans ValueError (avec traceback):
Traceback (most recent call last):
File "/Users/millerc/anaconda/bin/ipython", line 7, in <module>
launch_new_instance()
File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/frontend/terminal/ipapp.py", line 388, in launch_new_instance
app.initialize()
File "<string>", line 2, in initialize
File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/config/application.py", line 84, in catch_config_error
return method(app, *args, **kwargs)
File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/frontend/terminal/ipapp.py", line 313, in initialize
super(TerminalIPythonApp, self).initialize(argv)
File "<string>", line 2, in initialize
File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/config/application.py", line 84, in catch_config_error
return method(app, *args, **kwargs)
File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/core/application.py", line 325, in initialize
self.parse_command_line(argv)
File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/frontend/terminal/ipapp.py", line 308, in parse_command_line
return super(TerminalIPythonApp, self).parse_command_line(argv)
File "<string>", line 2, in parse_command_line
File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/config/application.py", line 84, in catch_config_error
return method(app, *args, **kwargs)
File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/config/application.py", line 420, in parse_command_line
return self.initialize_subcommand(subc, subargv)
File "<string>", line 2, in initialize_subcommand
File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/config/application.py", line 84, in catch_config_error
return method(app, *args, **kwargs)
File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/config/application.py", line 352, in initialize_subcommand
subapp = import_item(subapp)
File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/utils/importstring.py", line 40, in import_item
module = __import__(package,fromlist=[obj])
File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/frontend/html/notebook/notebookapp.py", line 46, in <module>
from .handlers import (LoginHandler, LogoutHandler,
File "/Users/millerc/anaconda/lib/python2.7/site-packages/IPython/frontend/html/notebook/handlers.py", line 36, in <module>
from docutils.core import publish_string
File "/Users/millerc/anaconda/lib/python2.7/site-packages/docutils/core.py", line 20, in <module>
from docutils import frontend, io, utils, readers, writers
File "/Users/millerc/anaconda/lib/python2.7/site-packages/docutils/frontend.py", line 41, in <module>
import docutils.utils
File "/Users/millerc/anaconda/lib/python2.7/site-packages/docutils/utils/__init__.py", line 20, in <module>
from docutils.io import FileOutput
File "/Users/millerc/anaconda/lib/python2.7/site-packages/docutils/io.py", line 18, in <module>
from docutils.utils.error_reporting import locale_encoding, ErrorString, ErrorOutput
File "/Users/millerc/anaconda/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/millerc/anaconda/lib/python2.7/locale.py", line 503, in getdefaultlocale
return _parse_localename(localename)
File "/Users/millerc/anaconda/lib/python2.7/locale.py", line 435, in _parse_localename
raise ValueError, 'unknown locale: %s' % localename
ValueError: unknown locale: UTF-8
Exécution de la commande locale
à partir du terminal:
5-millerc-~:locale
LANG=
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
Je résume ici la solution à trouver sur: http://blog.lobraun.de/2009/04/11/Mercurial-on-mac-os-x-valueerror-unknown-locale-utf-8/
J'ai ajouté ces lignes à mon .bash_profile
:
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
J'ai rechargé le profil:
source ~/.bash_profile
J'ai ensuite relancé ipython
:
ipython notebook
Ce qui précède fonctionnera pour la langue anglaise dans un environnement américain. On peut vouloir des paramètres différents.
Au risque d'énoncer une évidence, pour découvrir les paramètres actuels de votre système, utilisez:
$ locale
Et pour récupérer une liste de tous les paramètres valides sur votre système:
$ locale -a
Choisissez ensuite vos paramètres régionaux préférés. Par exemple, pour un environnement local suisse français, la solution ressemblerait à ceci:
export LC_ALL=fr_CH.UTF-8
export LANG=fr_CH.UTF-8
Il s'agit d'un bogue dans l'application OS X Terminal qui n'apparaît que dans certains paramètres régionaux (combinaisons pays/langues). Ouvrez Terminal dans/Applications/Utilitaires et décochez la case "Définir les variables d'environnement locales au démarrage".
Ainsi, votre variable d'environnement LANG
sera vide. Cela peut entraîner une utilisation incorrecte du terminal pour vos paramètres régionaux. La commande locale dans le terminal vous indiquera les paramètres utilisés. Pour utiliser la langue correcte, ajoutez une ligne à votre profil bash (généralement ~/.profile
)
export LANG=your-lang
Remplacer your-lang
avec le spécificateur de paramètres régionaux approprié pour votre langue. La commande locale -a
vous montrera tous les spécificateurs. Par exemple, le code de langue pour l'anglais américain est en_US.UTF-8
. Les paramètres régionaux affectent les traductions utilisées lorsqu'elles sont disponibles, ainsi que la mise en forme des dates, des devises et des décimales.
Remarque, cette image et ce contenu sont tirés de http://conda.pydata.org/docs/troubleshooting.html#unknown-locale (je suis également l'auteur original de cette page).
dans iTerm aller au menu
Preferences -> Profiles -> Terminal -> (Environment)
puis décocher
"Set locale variables automatically"
fait disparaître cette erreur.
Comme votre LC_CTYPE
est incorrect, vous devez savoir où cette mauvaise valeur est définie et la remplacer par quelque chose comme en_US.UTF-8
.