419 Stimmen

Python Locale-Fehler: nicht unterstützte Locale-Einstellung

Warum erhalte ich den folgenden Fehler, wenn ich dies in Python tue:

>>> import locale
>>> print str( locale.getlocale() )
(None, None)
>>> locale.setlocale(locale.LC_ALL, 'de_DE')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/locale.py", line 531, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting

Dies gilt auch für andere Länder wie Frankreich oder Italien. Ich benutze Ubuntu 11.04.

Update: Die folgenden Schritte haben nichts ergeben:

dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = (unset)
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

4voto

kikeenrique Punkte 1927

Übrigens hatte ich das gleiche Problem, aber keine der Lösungen hat funktioniert. Ich hatte meinen Computer aufgerüstet und meinen PC migriert. Ich hatte ein gemischtes Gebietsschema Englisch und Spanisch:

$ locale
LANG=en_US.utf8
LANGUAGE=
LC_CTYPE="en_US.utf8"
LC_NUMERIC=es_ES.utf8
LC_TIME=es_ES.utf8
LC_COLLATE="en_US.utf8"
LC_MONETARY=es_ES.utf8
LC_MESSAGES="en_US.utf8"
LC_PAPER=es_ES.utf8
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT=es_ES.utf8
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=

Aber bei meiner neuen Debian-Installation habe ich einfach Englisch als Gebietsschema ausgewählt. Was schließlich funktionierte, war die Neukonfiguration des Locales-Pakets, um auch Spanisch hinzuzufügen und zu generieren.

$ grep -v "#" /etc/locale.gen 
en_US.UTF-8 UTF-8
es_ES.UTF-8 UTF-8

3voto

Saroj Rai Punkte 1321

Öffnen Sie einfach die .bashrc-Datei und fügen Sie Folgendes hinzu

export LC_ALL=C

und geben Sie dann source .bashrc im Terminal ein.

2voto

andy Punkte 3531
  • diesen Befehl ausführen locale um zu erfahren, welches Gebietsschema verwendet wird. Zum Beispiel:

LANG=de_US.UTF-8
LANGUAGE=de_US:de
LC_CTYPE=zh_CN.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

  • Suche nach der Liste der aufgelisteten Gebietsschemata im ersten Schritt in /etc/locale-gen Datei. Unkommentiert zu verwenden
  • laufen. locale-gen um neu hinzugefügte Gebietsschemata zu erzeugen

1voto

Carlos Punkte 677

Wenn ich Sie wäre, würde ich BABEL verwenden: http://babel.pocoo.org/en/latest/index.html

Ich habe das gleiche Problem hier mit Docker, ich habe versucht, jeden einzelnen Schritt und funktionierte nicht gut, immer Locale-Fehler, so dass ich beschlossen, BABEL verwenden, und alles funktionierte gut.

1voto

imrek Punkte 2662

Dieser Fehler kann auftreten, wenn Sie gerade ein neues Gebietsschema hinzugefügt haben. Sie müssen die interaktive Python-Shell neu starten ( quit( ) und python ), um Zugang dazu zu erhalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X