2017-11-22 3 views
1

Wirklich kämpfen, um eine Benutzereingabe zu erhalten, wenn ich eine EXE-Datei von cx_Freeze erstellt. Wenn ich ein Skript erstelle, das keine Eingabe benötigt, läuft es einwandfrei. Ein schwarzes Fenster erscheint für eine Sekunde und verschwindet dann, und das Skript läuft im Hintergrund.Erstellen einer ausführbaren Datei mit Cx_Freeze. Wie erlaube ich Benutzereingaben?

Das Problem ist, wenn eine Benutzereingabe erforderlich ist kein Konsolenfenster in

Mein Setup-Skript das sieht aus wie eingeben:

from cx_Freeze import setup, Executable 

setup(name = "SpecialApp", 

     version= "0.1", 
     description="Performs useful things", 
     executables = [Executable("specialapp.py")]) 

Ich habe versucht, Basis = „Console“ und Basis = "Win32GUI", aber beide machen keinen Unterschied.

Eine andere Sache, dies kann eine eigene Frage erfordern, aber weiß jemand, wie man die Exe-Datei ausführt, ohne dass die .dll-Dateien vorhanden sein müssen? Ich möchte meinen Endbenutzern keinen riesigen Ordner voller Dateien geben, ich würde ihnen gerne nur die EXE-Datei oder eine Fledermaus-Datei geben.

Antwort

0

1) Versuchen base = Win32GUI in executables = [Executable("specialapp.py")]) Zugabe so sieht es aus wie:

[Executable("specialapp.py",base = None)]) 

Beachten Sie, dass Win32GUIversteckt der Konsole.

Wenn das immer noch nicht funktioniert, versuchen Sie von der Eingabeaufforderung (oder Ihrem Betriebssystem Äquivalent) und sehen, ob es Fehlermeldungen gibt (nur weil es kompiliert und startet ohne Fehler bedeutet es nicht, dass es irgendwelche gibt).

2) Für einzelne Datei exe schlage ich vor, gehen Sie für Pyinstaller oder bauen Sie in ein Installationsprogramm mit bdist_msi Befehl könnten Sie auch IExpress versuchen.

3) Die DLLs bieten die Python-Laufzeitbibliotheken so realistisch nicht mit Cx_Freeze.

Ich hoffe, ich half

+0

Danke Simon. Es funktioniert immer noch nicht. Wird versuchen, die Eingabeaufforderung zu verwenden und den Fehler zu sehen. Leider verwende ich winpython und darf nichts anderes installieren, daher scheint cx_freeze im Moment die einzige Option zu sein! Ich denke, ich könnte den Ordner irgendwo mit allen DLL-Dateien speichern und dann den Endbenutzern Batch-Skripts zur Verfügung stellen? – Actuary

+0

@Actuary Ja, bitte sagen Sie uns, was die Fehlermeldung ist. Und ich kann auch mit dem Batch-Teil helfen. – Simon

+0

Ich erhalte die Fehlermeldung: kann mkl_intel_thread.dll nicht laden, wenn versucht wird, in cmd Prompt – Actuary

Verwandte Themen