J'ai installé anaconda en exécutant le
bash Anaconda-2.2.0-Linux-x86_64.sh
sur mon système Ubuntu 14.04, qui s'est installé avec succès, après quoi on m'a demandé d'exporter ma nouvelle /home/username/anaconda/bin
variable d'environnement $ PATH.
Ce faisant, j'ai pu utiliser toutes les fonctionnalités d'anaconda, y compris les IDE, ainsi que toutes les commandes basées sur conda.
La prochaine fois que j'ai démarré mon système, chaque commande manquée a vu un
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)
Erreur. (Toutes les commandes sauf python
pour être spécifiques)
En suivant quelques messages stackexchange et askubuntu et en notant également que mon $PYTHONPATH
avait été défini sur usr/local/lib/python2.7
, j'ai essayé de
export PYTHONPATH=$PYTHONPATH:/home/username/anaconda/lib/python2.7
mais cela n'a pas aidé.
Cela m'a fait traverser toute une saga de suppressions et de réinstallations de packages, et bien sûr, de nombreuses mises à jour et mises à niveau, pour essayer de résoudre le problème par moi-même.
conda info -a
Retour:
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
La commande
which python
Retour
/home/username/anaconda/bin/python
et
echo "$PATH"
Retour
/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
Je sais que cela a quelque chose à voir avec la façon dont je définis les variables de chemin, en particulier dans le ~/.bashrc
dossier dans lequel Anaconda a automatiquement ajouté mon dossier / home / username / anaconda / bin à la $PATH
variable (cela s'est produit lors d'une deuxième installation d'Anaconda après l'avoir supprimé en premier). ).
Je n'ai pas modifié toute autre variable d'environnement dans les deux ~/.profile
ou ~/.bashrc
.
J'ai ajouté la ligne d'exportation $ PYTHONPATH à mon ~/.bashrc
avant de redémarrer.
Toutes les fonctionnalités d'Anaconda fonctionnent maintenant, bien que la même Fatal Python error: Py_Initialize: Unable to get the locale encoding
erreur continue de s'afficher au lieu de l'erreur de commande inconnue habituelle, pour la plupart des commandes mal typées.
Je continuerai à examiner cela et à modifier ma réponse (ou à me référer aux réponses existantes, le cas échéant) dès que je découvrirai pourquoi cela se produit.
la source
PYTHONPATH: /home/usrnme/anaconda/lib/python2.7:/usr/local/lib/python2.7
. Si je dois supprimer la ligne PYTHONPATH: / home / usrnme / anaconda .. de mon ~ / .bashrc, l'erreur persisterait et aucune des fonctionnalités d'Anaconda ne fonctionnerait jusqu'à ce que je la redéfinisse.J'ai eu des problèmes similaires au cours des deux derniers jours, je l'ai donc retracée à la façon dont bash gère la "commande introuvable". Dans Ubuntu 14.04 (et Linux Mint 17, dont j'utilise les scripts 14.04), /etc/bash.bashrc a la fonction suivante:
Cependant, / usr / lib / command-not-found a été réécrit pour Python 3. Il gère la commande /etc/bash.bashrc avec:
Cela appelle "python3" à partir du chemin plutôt que de donner le chemin direct. Pour corriger cela, la ligne 22 de / usr / lib / command-not-found doit être modifiée de
à
Cela semble être un bug avec Ubuntu plutôt qu'avec Anaconda. Je vais vérifier si cela apparaît dans les distributions ultérieures.
la source
Après avoir installé python3 dans les emplacements standard et réalisé que j'avais besoin de sudo pour l'utiliser, j'ai installé localement en utilisant ceci dans mon répertoire personnel:
Mais avait plus d'erreurs. Désinstaller simplement PYTHONPATH sur l'instance Amazon Linux d'AWS a fonctionné très bien pour moi.
la source
Mon problème était un peu différent: en tant qu'utilisateur, je pouvais courir
python
, mais en tant qu'autre utilisateur, non (j'ai eu la même erreur que OP). Enfin, j'ai découvert que les autorisations et la propriété de /usr/lib/python3.5 étaient vissées. La raison en était que j'avais défini récursivement les autorisations et la propriété sur virtualenv, ce qui a fini par modifier les cibles du lien symbolique (targetin /usr/lib/python3.5 ) également.Astuce: Utilisez
strace python
pour comprendre ce qui se passe pendant le démarrage de Python. Quand j'ai utiliséstrace
, je pouvais clairement voir PERMISSION_DENIED sur /usr/lib/python3.5 .la source
Cela a fonctionné pour moi
/programming//a/39097003/823282
la source
J'ai eu un problème similaire sur Windows - j'ai supprimé la variable système PYTHONHOME. J'essaierai de traduire la solution en anglais. Poste de travail> Propriétés> Paramètres système avancés> Variables d'environnement, recherchez la variable PYTHONHOME et supprimez-la.
la source