Ich habe Anaconda installiert, indem ich das ausgeführt habe
bash Anaconda-2.2.0-Linux-x86_64.sh
Befehl auf meinem Ubuntu 14.04-System, das erfolgreich installiert wurde. Danach wurde ich aufgefordert, meine neue /home/username/anaconda/bin
Umgebungsvariable $ PATH zu exportieren .
Dabei konnte ich alle Funktionen von Anaconda, einschließlich der IDEs, sowie alle Conda-basierten Befehle erfolgreich verwenden.
Beim nächsten Systemstart wurde bei jedem falsch eingegebenen Befehl ein angezeigt
Fatal Python error: Py_Initialize: Unable to get the locale encoding
File "/usr/local/lib/python2.7/encodings/__init__.py", line 123
raise CodecRegistryError,\
^
SyntaxError: invalid syntax
Aborted (core dumped)
Error. (Alle Befehle außer python
um genau zu sein)
Als ich ein paar Stackexchange- und Askubuntu-Posts verfolgte und auch bemerkte, dass ich $PYTHONPATH
auf eingestellt war usr/local/lib/python2.7
, versuchte ich es
export PYTHONPATH=$PYTHONPATH:/home/username/anaconda/lib/python2.7
aber es hat nicht geholfen.
Dies veranlasste mich, eine ganze Reihe von Paketerweiterungen und Neuinstallationen durchzuführen und natürlich viele Updates und Upgrades durchzuführen, um das Problem selbst zu beheben.
conda info -a
kehrt zurück:
CIO_TEST: <not set>
CONDA_DEFAULT_ENV: <not set>
CONDA_ENVS_PATH: <not set>
LD_LIBRARY_PATH: <not set>
PATH: /home/username/anaconda/bin:/home/username/Scala-sbt/sbt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/bin:/usr/local/java/jdk1.8.0_20/bin
PYTHONHOME: <not set>
PYTHONPATH: /usr/local/lib/python2.7:/home/username/anaconda/bin/python
Der Befehl
which python
kehrt zurück
/home/username/anaconda/bin/python
und
echo "$PATH"
kehrt zurück
/home/username/anaconda/bin:/home/username/Scala-sbt/sbt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/bin:/usr/local/java/jdk1.8.0_20/bin
Ich weiß , dass es etwas mit der Art und Weise zu tun , ich die Pfadvariablen gesetzt, und zwar in der ~/.bashrc
in dem Anaconda mein / home automatisch vorangestellt / Benutzername / anaconda / bin - Ordner in den $PATH
Variablen (Dies wurde während einer zweiten Installation von Anaconda passiert , nachdem ich es zuerst entfernt ).
Ich habe keine andere Umgebungsvariable geändert in entweder ~/.profile
oder ~/.bashrc
.
~/.bashrc
Vor dem Neustart habe ich die export $ PYTHONPATH-Zeile zu meiner hinzugefügt .
Alle Funktionen von Anaconda funktionieren jetzt, obwohl Fatal Python error: Py_Initialize: Unable to get the locale encoding
für die meisten fehlerhaften Befehle derselbe Fehler anstelle des üblichen unbekannten Befehlsfehlers angezeigt wird.
Ich werde dies weiter untersuchen und meine Antwort bearbeiten (oder auf vorhandene Antworten verweisen, falls vorhanden), sobald ich herausfinde, warum dies geschieht.
quelle
PYTHONPATH: /home/usrnme/anaconda/lib/python2.7:/usr/local/lib/python2.7
. Wenn ich die Zeile PYTHONPATH: / home / usrnme / anaconda .. aus meinem ~ / .bashrc entfernen würde, würde der Fehler weiterhin bestehen, und auch keine der Funktionen von Anaconda würde funktionieren, bis ich ihn erneut einstelle.Ich hatte in den letzten paar Tagen ähnliche Probleme, deshalb habe ich es darauf zurückgeführt, wie bash mit "Befehl nicht gefunden" umgeht. In Ubuntu 14.04 (und Linux Mint 17, das ich mit den 14.04-Skripten verwende) hat /etc/bash.bashrc die folgende Funktion:
/ Usr / lib / command-not-found wurde jedoch für Python 3 umgeschrieben. Der Befehl /etc/bash.bashrc wird verarbeitet mit:
Dies ruft "python3" vom Pfad auf, anstatt den direkten Pfad anzugeben. Um dies zu korrigieren, sollte Zeile 22 von / usr / lib / command-not-found von geändert werden
zu
Dies scheint eher ein Fehler bei Ubuntu als bei Anaconda zu sein. Ich werde überprüfen, ob es in späteren Distributionen erscheint.
quelle
Nachdem ich python3 an den Standardspeicherorten installiert und festgestellt habe, dass ich sudo benötige, um es zu verwenden, habe ich es lokal in meinem Ausgangsverzeichnis installiert:
Hatte aber mehr Fehler. Das einfache Deaktivieren von PYTHONPATH auf der Amazon Linux-Instanz von AWS hat mir sehr gut gefallen.
quelle
Mein Problem war ein bisschen anders: Als ein Benutzer konnte ich ausführen
python
, aber als ein anderer Benutzer nicht (ich habe den gleichen Fehler wie OP). Schließlich fand ich heraus, dass die Berechtigungen und der Besitz von /usr/lib/python3.5 verschraubt waren. Der Grund dafür war, dass ich die Berechtigungen und den Besitz für virtualenv rekursiv festgelegt hatte, was dazu führte, dass auch die Symlink-Ziele (targetin /usr/lib/python3.5 ) geändert wurden .Tipp: Verwenden Sie
strace python
diese Option, um herauszufinden, was beim Starten von Python passiert. Als ich es benutztestrace
, konnte ich PERMISSION_DENIED auf /usr/lib/python3.5 deutlich sehen .quelle
Das hat bei mir funktioniert
/programming//a/39097003/823282
quelle
Ich hatte ein ähnliches Problem unter Windows - Ich habe die Systemvariable PYTHONHOME gelöscht. Ich werde versuchen, die Lösung ins Englische zu übersetzen. Arbeitsplatz> Eigenschaften> Erweiterte Systemeinstellungen> Umgebungsvariablen, suchen Sie die Variable PYTHONHOME und löschen Sie sie.
quelle