2013-10-07 7 views
18

So läuft ich auf 64-Bit-Windows 7, und ich eingerichtet Pyinstaller mit Pip und PyWin32. Ich habe Python 2.7.PyInstaller funktioniert nicht auf einfache HelloWorld-Programm

Ich habe eine einfache Hallo Welt Programm mit diesem Code

print "hello world!" 

ich die Datei im selben Verzeichnis wie PyInstaller setzen und lief diesen Code in der Eingabeaufforderung

pyinstaller.py helloWorld.py 

Doch wenn Ich versuche das, bekomme ich diese Fehlermeldung:

Error loading Python DLL: C:\PROGRA~1\PYINST~1.1\build\HELLOW~1\python27.dll (error code 126) 

Was mache ich falsch und wie behebe ich das?

Antwort

30

Run mit der Option -F die Standalone exe zu erzeugen:

pyinstaller.py -F helloworld.py 

Es wird Ausgang dist/HelloWorld.exe

Hinweis: Dies ist eine andere Stelle, wenn -F nicht verwendet wird, Stellen Sie sicher, dass Sie danach die richtige exe ausführen.

+8

Es ist erwähnenswert, dass es jetzt scheint, in 'dist/{filename}' auszugeben, anstatt 'build/{filename}'. –

+0

Danke, ich habe meine Antwort aktualisiert, um den neuen Standort wiederzugeben – tul

1

Danke @tul! Meine Version von pyinstaller legte es auf dist \ helloworld.exe obwohl!

Wenn Sie es von C beginnen: \ Python27 \ Scripts ... die C sein werden: \ Python27 \ Scripts \ dist ..., wie gut!

Aber wo auch immer Sie es haben, empfehle ich eine Batch-Datei neben Ihrem Py setzen jederzeit mit nur einem Klick zu können, neu kompilieren:

ich es so einrichten, ist es nichts anderes als die .exe am Py Lage und die temporären Sachen geht zum temp dir:

@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% 

ich es wie die .py Datei benennen plus „_build“ und wieder das Suffix im Batch-Skript wegschneiden. Voilà.

Verwandte Themen