6 Stimmen

Ausführbare Datei, die mit py2exe erstellt wurde, läuft nicht auf Windows XP 32-Bit

Ich habe mit py2exe auf einem 64-Bit-Windows-7-Computer eine ausführbare Datei erstellt und das Programm verteilt.

Auf einem Windows-XP-32-Bit-Computer weigert sich das Programm, zu laufen, und zeigt folgendes Verhalten:

Ein Popup-Fenster besagt: program.exe ist keine gültige Win32-Anwendung.

Das Befehlszeilenfenster zeigt "Zugriff verweigert".

Ich habe die Berechtigungen überprüft und der Benutzer hat volle Kontrolle und die vollständige Eigentümerschaft der Datei und ihrer übergeordneten Verzeichnisse. Das kann also nicht das Problem sein.

Die einzige mögliche Ursache, die ich mir vorstellen kann, ist eine OS-/Architektur-Inkompatibilität. Wie soll ich das beheben?

Meine setup.py-Datei, die verwendet wurde, um die ausführbare Datei zu generieren:

from distutils.core import setup
import py2exe

setup(console=['xerxes2excel.py'])

Ich habe folgendes ausgeführt, um die exe zu generieren:

python setup.py py2exe

7voto

bwawok Punkte 13962

Ich denke, du musst einfach 32-Bit-Python und 32-Bit-Py2exe auf deinem Rechner installieren....siehe Kann 64-Bit-Python 32-Bit-Windows-Dateien erstellen

4voto

Gagou Punkte 41

Ein häufiges Problem tritt auf, wenn Sie ein ausführbares Programm unter Windows 7 erstellen und auf Windows XP bereitstellen.

Laut dem py2exe-Tutorial müssen Sie die MVC DLL einbinden. Aber das Tutorial ist alt und das bereitgestellte Skript sucht nur in einem Verzeichnis. Früher enthielt das Verzeichnis alle DLLs und das Manifest, aber heute enthält es nur noch die DLL. Sie müssen ein anderes Verzeichnis für die Manifestdatei angeben. Wenn Sie das nicht tun, erhalten Sie diese Art von Fehler:

Diese Anwendung konnte nicht gestartet werden, da die Anwendungs konfiguration inkorrekt ist

Wenn Sie auf einem 64-Bit-Windows 7 sind, benötigen Sie die Microsoft Visual C-Laufzeit-DLL. Vergessen Sie nicht das Manifest, das sich nicht im gleichen Verzeichnis wie in Windows 7 befindet. Sie müssen das Skript wie folgt anpassen:

data_files = [("VC90", glob(r'C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91\*.*')),
            ("VC90", glob(r'C:\Windows\winsxs\Manifests\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91.manifest'))
]
setup(
    data_files=data_files,
    console = [{'script': "C:\test\my_program.py"}],
    zipfile = None,
)

Jetzt können Sie das Verzeichnis "dist" bereitstellen, das alle Dateien und Abhängigkeiten enthält.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X