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é!
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:
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:
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.
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 ""