Frage Nuitka unter Windows


Probleme beim Kompilieren von hallo-world.py mit Nuitka unter Windows.

Der Befehl, den ich verwende, ist:

nuitka --standalone --portable --remove-output --recurse-all --python-version=3.4 hello_world.py

Der Fehler ist:

WindowsError: [Error 2] The system cannot find the file specified:
File "C:\Users\win_user\Anaconda3\Lib\site-packages\nuitka\build\SingleExe.scons", line 866:
shell       = False
File "c:\Python27\lib\subprocess.py", line 709:
errread, errwrite)
File "c:\Python27\lib\subprocess.py", line 957:
startupinfo)

Derselbe Code wird kompiliert und läuft unter Linux einwandfrei. Derselbe Code läuft im Interpreter unter Windows einwandfrei.

Die in der Fehlermeldung erwähnten Dateien existieren tatsächlich. Irgendwelche Vorschläge?

Verwenden von Win7. Python 3.4 (Anaconda x64). Verwenden von MinGW.


5
2017-10-13 14:07


Ursprung


Antworten:


OK, zum Vorteil von jedem, der den gleichen Fehler hat, hier ist die Antwort auf meine eigene Frage:

Ich habe es nicht geschafft, dass MinGW funktioniert. Ich habe schließlich MSVC2010 installiert. Dies ist vielleicht besser, da es für Python 3.4 unter Windows sowieso empfohlen wird (siehe: https://docs.python.org/3.4/using/windows.html#compiling-python-on-windows).

Im Folgenden finden Sie Anweisungen zur Installation von Nuitka mit Python 3.4 mit MSVC ++ 2010 und Win7 64bit:

Weitere hilfreiche Anweisungen für MSVC2010 finden Sie hier:
1. https://wiki.qt.io/How_to_setup_MSVC2010
2. http://uk.mathworks.com/matlabcentral/answers/95039-why-does-the-sdk-7-1-installation-fail-with-an-installation-failed-message-on-my-windows-system

Die Schritte sind:

  1. Installieren Sie .net 4.x:
    Lauf dotNetFx40_Full_setup.exe (von http://www.microsoft.com/en-gb/download/confirmation.aspx?id=17851)

  2. Installieren Sie Visual C ++ 2010 Express:
    Lauf vc_web.exe (von http://microsoft-visual-cpp-express.soft32.com/download/file/id/795918/?no_download_manager=true)

  3. UN-Installieren Sie eine beliebige Visual C ++ 2010-Laufzeitumgebung / Neuverteilung, die neuer oder gleich 10.0.30319 ist.
    (In meinem Fall hatte ich eine saubere Windows-Installation für dieses Setup, also gab es nichts zu entfernen)

  4. Installieren Sie Windows SDK 7.1: (wählen Sie alle Installationsoptionen aus)
    Lauf winsdk_web.exe (von https://www.microsoft.com/en-us/download/details.aspx?id=8279)

  5. Installieren Sie VS 2010 SP1:
    Lauf VS10sp1-KB983509.exe (von http://www.microsoft.com/en-au/download/details.aspx?id=23691)

  6. Installieren Sie das MSVC 2010 SP1-Compiler-Update:
      Lauf VC-Compiler-KB2519277.exe (von http://www.microsoft.com/de-de/download/details.aspx?id=4422)

C-Compiler ist jetzt installiert.

  1. Zum Testen auf 64-Bit-Rechnern habe ich festgestellt, dass eine Datei fehlt, die manuell erstellt werden muss. (Siehe hier: http://www.w7forums.com/threads/vcvarsall-bat-no-64bit-support-vcvars64-bat-missing.6606/)
    Um das Problem zu beheben, erstellen Sie eine Datei namens: C: \ Programme (X 86) \ Microsoft Visual Studio 10.0 \ vc \ bin \ amd64 \ vcvars64.bat In der Datei den Text einfügen CALL "C: \ Programme \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ SetEnv.cmd" / x64

  2. Setup-Umgebung:
    Lauf "C: \ Programme (X 86) \ Microsoft Visual Studio 10.0 \ VC \ vcvarsall" Amd64
    Der Konsolentext sollte nach dem obigen Befehl gelb werden.
    (Siehe hier für andere Optionen als amd64: https://msdn.microsoft.com/en-us/library/f2ccy3wt.aspx)

  3. Kompiliere Testprogramm: (tu dies solange der cmd Text noch gelb ist)
    cl Hallo.c
    (vorausgesetzt, Ihr Testprogramm wird aufgerufen Hallo c)

  4. Testprogramm ausführen:
    Hallo.exe

C-Compiler jetzt getestet.

  1. Installiere Python 2.7: (Nuitka benötigt das auch wenn der Python Code 3.x ist)
    Lauf python-2.7.6.amd64.msi (von https://www.python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi)

  2. Installieren Sie Python 3.4: (Anaconda-Stack scheint der beste Weg, um dies unter Windows zu bekommen)
    Lauf Anaconda3-2.3.0-Windows-x86_64.exe (von https://3230d63b5fc54e62148e-c95ac804525aac4b6dba79b00b39d1d3.ssl.cf1.rackcdn.com/Anaconda3-2.3.0-Windows-x86_64.exe)

  3. Installieren Sie Nuitka: (neuere Versionen die ganze Zeit, also besser überprüfen http://nuitka.net/pages/download.html)
    Lauf Nuitka-5.1.143.win-amd64.py34.msi (von http://nuitka.net/releases/Nuitka-5.1.143.win-amd64.py34.msi)

Alle installieren jetzt fertig!

  1. Test Nuitka: (vorausgesetzt, Ihr Testprogramm ist Hallo.py)
    "C: \ Programme (X 86) \ Microsoft Visual Studio 10.0 \ VC \ vcvarsall" Amd64
    nuitka --standalone --portable hello.py
    CD hallo.dist
    Hallo.exe

Auf die erste Verwendung von nuitka gab es diesen Hinweis: "Nuitka wird Dependency Walker (http://dependencywalker.com) um die Abhängigkeiten von Python Erweiterungsmodulen zu analysieren. Ist es in Ordnung, es herunterzuladen und es in APPDATA (kein Installationsprogramm benötigt, im Cache, einmal Frage). Fortfahren und herunterladen? [Ja] / Nein. "Ich sagte ja und dann funktionierte das Hallo-Welt-Programm.

Hallo Welt hat nach dieser Prozedur funktioniert, aber einige Importe auf kompliziertere Programme verursachen Warnungen. Will meine Antwort bearbeiten, wenn ich mir das ausdenke. Oder ich werde eine andere Frage stellen, wenn ich es nicht herausfinden kann.


8
2017-10-14 21:23