Je cours donc sur Windows 7 64 bits, et j'ai configuré Pyinstaller avec Pip et PyWin32. J'ai python 2.7.
J'ai fait un simple programme Hello World avec ce code
print "hello world!"
J'ai mis le fichier dans le même répertoire que PyInstaller et j'ai exécuté ce code dans l'invite de commande
pyinstaller.py helloWorld.py
Pourtant, quand j'essaye, je reçois ce message d'erreur:
Error loading Python DLL: C:\PROGRA~1\PYINST~1.1\build\HELLOW~1\python27.dll (error code 126)
Qu'est-ce que je fais mal et comment résoudre ce problème?
Exécutez avec le drapeau -F pour produire l'exe autonome:
pyinstaller.py -F helloworld.py
c'est pyinstaller.exe -F helloworld.py
Il sortira vers dist/helloworld.exe
REMARQUE il s'agit d'un emplacement différent de lorsque -F n'est pas utilisé, assurez-vous d'exécuter le bon exe par la suite.
Merci @tul! Ma version de pyinstaller l'a mis à dist \helloworld.exe cependant!
Si vous le démarrez à partir de C:\Python27\Scripts ... ce sera C:\Python27\Scripts\dist ... aussi!
Mais partout où vous l'avez, je vous recommande de mettre un fichier batch à côté de votre .py pour pouvoir recompiler à tout moment en un seul clic:
Je l'ai configuré pour qu'il n'y ait rien d'autre que le .exe à l'emplacement .py et les trucs temporaires vont dans le répertoire temp:
@echo off
:: get name from filename without path and ext
set name=%~n0
echo ========= %name% =========
:: cut away the suffix "_build"
set name=%name:~0,-6%
set pypath=C:\Python27\Scripts
set buildpath=%temp%
if not exist %name%.py (
echo ERROR: "%name%.py" does not exist here!
pause
exit /b
)
%pypath%\pyinstaller.exe --onefile -y %~dp0%name%.py --distpath=%~dp0 --workpath=%buildpath% --specpath=%buildpath%
Je le nomme comme le fichier .py plus "_build" et coupe à nouveau le suffixe dans le script batch. Voilà.