web-dev-qa-db-fra.com

ImportError: Aucun module nommé 'encodings'

J'ai récemment réinstallé Ubuntu et je suis passé à 16.04.

$ python manage.py runserver
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted

À ce stade, le python lui-même ne fonctionne pas

$ python
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted

Même cette suggestion ne fonctionne plus:

unset PYTHONHOME
unset PYTHONPATH

Chaque fois que je le répare dans un sens, il revient encore. Plusieurs réponses aident à résoudre le problème temporairement, mais pas pour toujours. J'ai réinstallé python et python3 plusieurs fois. Que puis-je faire d'ici? Je vous remercie

57
codyc4321

Pour Python-3, essayez de supprimer les fichiers d’environnement virtuel. Et le réinitialiser.

rm -rf venv
virtualenv -p /usr/bin/python3 venv/
source env/bin/activate
pip install -r requirements.txt

https://wiki.ubuntu.com/XenialXerus/ReleaseNotes#Python_3

53
Anoop Malav

Pour l'utilisateur Windows10.

J'utilisais python3.4 sur Windows 10. J'ai installé python3.5. Je ne pouvais pas trouver PYTHONPATH, variable env PYTHONHOME. Si je commande python dans la console CMD, il a continué à utiliser python3.4. J'ai supprimé python3.4. Chaque fois que je commande python dans la console CMD, il commence à afficher une erreur comme ci-dessous.

Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'

J'ai cherché à comprendre mon problème. La solution était simple. Lorsque vous installez python3.5, vous pouvez personnaliser l’installation et vérifier Ajouter Python aux variables d’environnement dans les options avancées.

Je laisse juste ici pour le cas où quelqu'un a des problèmes similaires visiter ici afin qu'ils ne perdent pas leur temps précieux à comprendre.

8
Jayground

J'ai eu cette erreur lors de la migration vers Ubuntu 17.10, et cela a résolu le problème:

Sudo dpkg-reconfigure python3

Peut-être devrez-vous fermer votre session et vous reconnecter.

5
numahell

Je faisais face au même problème sous Windows7. Le message d'erreur ressemble à ça:

Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

Current thread 0x000011f4 (most recent call first):

J'ai installé Python 2.7 (désinstallé maintenant) et j'ai coché la case "Ajouter Python aux variables d'environnement dans les options avancées" lors de l'installation de Python 3.6. Il s'avère que la variable d'environnement "PYTHONHOME" et "PYTHONPATH" est toujours python2.7. 

Enfin, je l'ai résolu en modifiant "PYTHONHOME" en chemin d'installation python3.6 et en supprimant la variable "PYTHONPATH". 

4
Li Qiao

Pour le même problème sous Windows7

Vous verrez une erreur comme celle-ci si vos variables d’environnement/système sont mal définies:

Fatal Python error: Py_Initialize: unable to load the file system codec
ImportError: No module named 'encodings'

Current thread 0x00001db4 (most recent call first):

La réparation est très simple:

  1. Lorsque vous téléchargez la version de Python3.x et exécutez le fichier .exe, une option vous permet de personnaliser l'emplacement d'installation de Python dans votre système. Par exemple, j'ai choisi cet emplacement:C:\Program Files\Python36 

  2. Ouvrez ensuite les propriétés du système et allez dans l’onglet " Avancé " (Ou vous pouvez simplement faire ceci: Allez dans Démarrer> Rechercher " variables d’environnement "> Cliquez sur "Editer les variables d’environnement système".) Sous Onglet "Avancé", recherchez "Variables d'environnement" et cliquez dessus. Une autre fenêtre nommée "Variables d'environnement" apparaîtra.

  3. Maintenant, assurez-vous que le chemin correct de Python de vos variables utilisateur est répertorié dans "Variable de chemin". Dans mon exemple ici, vous devriez voirC:\Program Files\Python36. Si vous ne le trouvez pas, ajoutez-le en sélectionnant le champ Variable de chemin puis en cliquant sur Modifier.

  4. La dernière étape consiste à revérifier les champsPYTHONHOMEetPYTHONPATHsous Variables système dans la même fenêtre. Vous devriez voir le même chemin que décrit ci-dessus. Si ce n'est pas le cas, ajoutez-le aussi.

Cliquez ensuite sur OK, revenez au terminal CMD et essayez de rechercher python. Le problème devrait maintenant être résolu. Cela a fonctionné pour moi.

4
dotpy_novice

Regardez /lib/python3.5 et vous verrez des liens brisés vers les bibliothèques python. Recréez-le dans le répertoire de travail.

Erreur suivante - 

./script/bin/pip3
Failed to import the site module
Traceback (most recent call last):
  File "/home/script/script/lib/python3.5/site.py", line 703, in <module>
    main()
  File "/home/script/script/lib/python3.5/site.py", line 683, in main
    paths_in_sys = addsitepackages(paths_in_sys)
  File "/home/script/script/lib/python3.5/site.py", line 282, in addsitepackages
    addsitedir(sitedir, known_paths)
  File "/home/script/script/lib/python3.5/site.py", line 204, in addsitedir
    addpackage(sitedir, name, known_paths)
  File "/home/script/script/lib/python3.5/site.py", line 173, in addpackage
    exec(line)
  File "<string>", line 1, in <module>
  File "/home/script/script/lib/python3.5/types.py", line 166, in <module>
    import functools as _functools
  File "/home/script/script/lib/python3.5/functools.py", line 23, in <module>
    from weakref import WeakKeyDictionary
  File "/home/script/script/lib/python3.5/weakref.py", line 12, in <module>
    from _weakref import (
ImportError: cannot import name '_remove_dead_weakref'

résolu comme ceci - https://askubuntu.com/questions/907035/importerror-cannot-import-name-remove-dead-weakref

cd my-virtualenv-directory
virtualenv . --system-site-packages
0
IvanTheFirst