Vollständige Stapelverfolgung:
➜ ~ pip install virtualenv
Traceback (most recent call last):
File "/usr/bin/pip", line 11, in <module>
sys.exit(main())
File "/usr/lib/python3.4/site-packages/pip/__init__.py", line 215, in main
locale.setlocale(locale.LC_ALL, '')
File "/usr/lib64/python3.4/locale.py", line 592, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
Auf demselben Server wurde ich erfolgreich pip install virtualenv
mit Python 2.7.x ausgeführt.
Jetzt habe ich gerade Python3.4 mit installiert curl https://bootstrap.pypa.io/get-pip.py | python3.4
.
➜ ~ pip --version
pip 8.1.1 from /usr/lib/python3.4/site-packages (python 3.4)
pip uninstall virtualenv
wirft auch den gleichen Fehler
python
python-3.x
centos
pip
ericn
quelle
quelle
LANG=en_GB.utf8
Antworten:
Die Hauptursache ist: Ihre Umgebungsvariable
LC_ALL
fehlt oder ist irgendwie ungültigKurze Antwort-
Führen Sie einfach den folgenden Befehl aus:
Wenn der Fehler in neuen Terminalfenstern weiterhin angezeigt wird, fügen Sie ihn am Ende Ihrer
.bashrc
Datei hinzu.Lange Antwort-
Hier sind meine
locale
Einstellungen:Python2.7
quelle
export LC_ALL=C
geholfen.LC_ALL=C
bedeutet, lesen Sie hier .Führen Sie den folgenden Befehl aus (es wird funktionieren):
quelle
dpkg-reconfigure
Befehl ist für die Verwendung auf Debian-basierten Systemen vorgesehen. Diese Frage ist mitcentos
einem RHEL-Derivat gekennzeichnet, das dpkg nur unterstützt, wenn Sie dasepel-release
Repository aktivieren und diedpkg-devel
&dpkg-dev
-Pakete installieren . Selbst dann ist dies keine ideale Lösung.Jemand könnte es nützlich finden. Sie können diese Gebietsschemaeinstellungen in die .bashrc-Datei einfügen, die sich normalerweise im Ausgangsverzeichnis befindet.
Fügen Sie diesen Befehl einfach in .bashrc hinzu: Geben Sie
export LC_ALL=C
dann
source .bashrc
Now ein. Sie müssen diesen Befehl nicht jedes Mal manuell aufrufen, wenn Sie beispielsweise eine Verbindung über ssh herstellen.
quelle
Während Sie das Gebietsschema festlegen können, das eine env-Variable exportiert, müssen Sie dies jedes Mal tun, wenn Sie eine Sitzung starten. Wenn Sie auf diese Weise ein Gebietsschema festlegen, wird das Problem dauerhaft gelöst:
quelle
sudo
dieselbe Zeile, in der Sie versuchen, sie zu installieren?sudo apt-get install ... sudo ...
[Diese Antwort ist nur auf der Linux-Plattform verfügbar]
Das erste, was Sie wissen sollten, ist, dass der größte Teil des Pfads der Gebietsschema-Konfigurationsdatei von folgender Adresse abgerufen werden kann
localedef --help
:Sehen Sie den letzten
/usr/share/i18n
? Hier befindet sich Ihre xx_XX.UTF-8-Konfigurationsdatei:Was jetzt ? Wir müssen sie in Archivbinär kompilieren. Eine der Möglichkeiten, z. B. anzunehmen, dass ich sie habe
/usr/share/i18n/locales/en_LOVE
, kann ich in die Kompilierungsliste aufnehmen, dh/etc/locale-gen
Datei:Und kompilieren Sie es binär mit
sudo locale-gen
:Und jetzt aktualisieren Sie das Standardgebietsschema des Systems mit dem gewünschten
LANG
,LC_ALL
... usw. damitupdate-locale
:update-locale
bedeutet eigentlich auch, diese/etc/default/locale
Datei zu aktualisieren , die beim Anmelden vom System als Quelle für die Einrichtung von Umgebungsvariablen verwendet wird:Möglicherweise möchten wir jedoch keinen Neustart durchführen, damit er wirksam wird. Daher können wir ihn einfach in der aktuellen Shell-Sitzung als Umgebungsvariable verwenden:
Wie wäre es
sudo dpkg-reconfigure locales
? Wenn Sie damit herumspielen, wissen Sie, dass dieser Befehl im Wesentlichen als GUI fungiert, um die obigen Schritte zu vereinfachen, dh Bearbeiten/etc/locale.gen
->sudo locale-gen
->sudo update-locale LANG=en_LOVE.UTF-8
Für Python sollte es funktionieren , solange es
/etc/locale.gen
diesen Gebietsschemakandidaten enthält undlocale.gen
kompiliert wird . Sie können die richtige Zeichenfolge überprüfen / nur eingestellt werden , durch Beobachtung Datei und dann uncomment und kompilieren Sie es wie gewünscht. ohne Punkt in dieser Datei bedeutet, dass die richtige Zeichenfolge und ist .setlocale(category, locale)
locale.Error: unsupoorted locale setting
en_US.UTF-8
en_US/....etc
setlocale()
/etc/locale.gen
zh_CN GB2312
zh_CN
zh_CN.GB2312
quelle
/etc/locale.gen
, kommentieren Sie diezh_CN.UTF-8
Zeile aus; 2sudo locale-gen
..Für Dockerfile funktioniert dies für mich:
Wie installiere ich locale-gen?
docker ubuntu / bin / sh: 1: locale-gen: nicht gefunden
quelle
Ich hatte das gleiche Problem und arbeitete nicht für mich .
"export LC_ALL=c"
Versuchen Sie es
export LC_ALL="en_US.UTF-8"
(es wird funktionieren).quelle
Die Fehlermeldung weist auf ein Problem mit der Ländereinstellung hin. Um dies zu beheben, wie in anderen Antworten angegeben, müssen Sie Ihr Gebietsschema ändern.
Unter Mac OS X Sierra stellte ich fest, dass der beste Weg, dies zu tun, darin bestand, die
~/bash_profile
Datei wie folgt zu ändern :Diese Änderung wird in Ihrer aktuellen CLI-Sitzung nicht sofort sichtbar, es sei denn, Sie laden das Bash-Profil mithilfe von :
source ~/.bash_profile
.Diese Antwort kommt den Antworten ziemlich nahe, die ich auf andere nicht identische, nicht doppelte Fragen (dh nicht im Zusammenhang mit pipenv) gepostet habe, für die jedoch dieselbe Lösung erforderlich ist.
An den Moderator: Mit Respekt; Meine vorherige Antwort wurde aus diesem Grund gelöscht, aber ich finde das etwas albern, weil diese Antwort wirklich fast immer dann zutrifft, wenn der Fehler "Problem mit dem Gebietsschema" ist ... aber es gibt eine Reihe unterschiedlicher Situationen, Sprachen und Umgebungen, die ausgelöst werden könnten dieser Fehler.
Daher ist es A) nicht sinnvoll, die Fragen als Duplikate zu markieren, und B) auch nicht sinnvoll, die Antwort anzupassen, da die Korrektur sehr einfach ist, in jedem Fall dieselbe ist und nicht von Ornamenten profitiert.
quelle
Ubuntu:
$ sudo vi /etc/default/locale
Fügen Sie die folgende Einstellung am Ende der Datei hinzu.
LC_ALL = en_US.UTF-8
quelle