web-dev-qa-db-de.com

IPython Notebook-Gebietsschemafehler

Nach der Installation der neuesten Version Mac OSX 64-Bit Anaconda Python Distribution ) wird beim Versuch, IPython Notebook zu starten, immer wieder ein ValueError angezeigt.

Das Starten von ipython funktioniert einwandfrei:

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.

Aber ipython notebook starten:

4-millerc-~:ipython notebook

Ergebnisse im ValueError (mit 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

Führen Sie den Befehl locale über das Terminal aus:

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=
42
cmiller8

Ich fasse hier die zu findende Lösung zusammen: http://blog.lobraun.de/2009/04/11/Mercurial-on-mac-os-x-valueerror-unknown-locale -utf-8/

Ich habe diese Zeilen zu meinem .bash_profile:

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

Ich habe das Profil neu geladen:

source ~/.bash_profile

Ich habe dann wieder ipython ausgeführt:

ipython notebook

Ändern der Ländereinstellung

Das Obige funktioniert für die englische Sprache in einem US-Gebietsschema. Man möchte vielleicht andere Einstellungen.

Verwenden Sie, um die aktuellen Einstellungen für Ihr System zu ermitteln, auf die Gefahr der Angabe des Offensichtlichen:

$ locale

Und um eine Liste aller gültigen Einstellungen auf Ihrem System abzurufen:

$ locale -a

Wählen Sie dann Ihr bevorzugtes Gebietsschema. Für ein schweizerisch-französisches Gebietsschema würde die Lösung beispielsweise so aussehen:

export LC_ALL=fr_CH.UTF-8
export LANG=fr_CH.UTF-8
98
gauden

Dies ist ein Fehler in der OS X-Terminal-App, der nur in bestimmten Gebietsschemata (Kombinationen aus Land und Sprache) auftritt. Öffnen Sie Terminal in/Programme/Dienstprogramme und deaktivieren Sie das Kontrollkästchen "Umgebungsvariablen für das Gebietsschema beim Start festlegen".

enter image description here

Dadurch wird Ihre Umgebungsvariable LANG leer. Dies kann dazu führen, dass das Terminal falsche Einstellungen für Ihr Gebietsschema verwendet. Der Befehl locale im Terminal teilt Ihnen mit, welche Einstellungen verwendet werden. Um die richtige Sprache zu verwenden, fügen Sie Ihrem Bash-Profil eine Zeile hinzu (normalerweise ~/.profile).

export LANG=your-lang

Ersetzen Sie your-lang Durch den korrekten Gebietsschemaspezifizierer für Ihre Sprache. Der Befehl locale -a Zeigt Ihnen alle Bezeichner. Beispielsweise lautet der Sprachcode für US-Englisch en_US.UTF-8. Das Gebietsschema beeinflusst, welche Übersetzungen verwendet werden, wenn sie verfügbar sind, und wie Datumsangaben, Währungen und Dezimalstellen formatiert werden.

Beachten Sie, dass dieses Bild und dieser Inhalt aus http://conda.pydata.org/docs/troubleshoot.html#unknown-locale (Ich bin auch der ursprüngliche Autor dieser Seite) stammen.

29
asmeurer

in iTerm zum Menü gehen

Preferences -> Profiles -> Terminal -> (Environment) 

und dann deaktivieren

"Set locale variables automatically"

hat diesen Fehler behoben.

13
AceRymond

Da Ihr LC_CTYPE Falsch ist, sollten Sie herausfinden, wo dieser falsche Wert eingestellt ist, und ihn in einen Wert wie en_US.UTF-8 Ändern.

3
wRAR