web-dev-qa-db-fra.com

Python, erreur PyInstaller: aucun module nommé "Codages" ni codec système manquant

J'utilise Python 3.3.3 et j'ai essayé de créer un fichier .exe à partir d'un simple script .py.

Mon script ressemble à ceci:

import encodings

print('Test')

et s'exécute correctement.

Quand j'essaye de le construire avec PyInstaller avec cette commande:

pyinstaller --onefile Testmodul.py

et essayez d'ouvrir mon fichier .exe, il s'affiche avec cette erreur: Fatal Python error: Py_Initialize: unable to load the file system codec, ImportError: No module named 'encodings'

J'ai déjà essayé d'importer le module 'encodages' dans mon script de test, mais cela ne fonctionne toujours pas. J'ai également essayé py2exe et cela ne fonctionne pas du tout.

Y at-il quelque chose que je fais mal? Dois-je configurer quelque chose dans mon PATH? le chemin correct vers "C:\Python33" y est déjà inclus.

EDIT: A tout le monde avec ce problème: j’ai abandonné, et après une nouvelle installation de windows et de python et tous les autres trucs, j’ai essayé à nouveau, de la même manière qu’avant et cela fonctionnait sans problème. si vous êtes vraiment désespéré! 

15
Zesa Rex

C'est probablement parce que pyinstaller n'a pas inclus le module en premier lieu. Essayez l'une des solutions suivantes.

1) Spécifiez le chemin d'accès à votre module lors de la compilation:

  • pyinstaller --onefile --paths =/chemin/vers/module Testscript.py

2) Spécifiez le chemin à partir du fichier .spec:

  • lancez cette commande d'abord (dans le répertoire de pyinstaller): 

    python Makespec.py --onefile /path/to/yourscript.py
    
  • maintenant vous avez le fichier .spec. ouvrez-le dans votre éditeur de texte et ajoutez le chemin d'accès à vos modules dans pathex.

    pathex=['C:\\path\\to\\module']
    
  • alors, construisez votre programme:

     python Build.py /path/to/yourscript.spec
    

3) Utilisez des importations cachées:

  • pyinstaller --onefile --hidden-import = nom_module Testscript.py
  • vous pouvez également spécifier une importation masquée dans le fichier .spec.
2
A.Sherif

Quelle version de Windows utilisez-vous (7 ou 10)?

Ce problème semble être relatif aux privilèges de l'utilisateur ... et en supposant qu'il ressemble à ce problème , vous pouvez d'abord essayer d'exécuter votre fichier exe avec des privilèges d'administrateur. S'il échoue à nouveau, essayez pour exécuter "Pyinstaller" à partir d'un cmd.exe fonctionnant avec le droit d'administrateur.

0
A STEFANI

Ajoutez le fichier de hook avec le nom hook-encodings.py à l'emplacement C:\Python\Lib\site-packages\PyInstaller\hooks et ajoutez la ligne de code suivante pour collecter le module d'encodages dans le fichier de hook

from PyInstaller.utils.hooks import collect_submodules

hiddenimports = collect_submodules('encodings')

cela peut fonctionner, cette réponse pourrait vous aider Erreur de désinstallation de Pynago pour le projet Djnago "ImportError: Aucun module nommé" Django.contrib.admin.apps ""

0
Ragini Dahihande