Hi, ich möchte eine Python Datei für Windiws compilieren, so dass ich auf dem Zielrechner nicht immer Python installieren muss. Dazu habe ich mir pyinstaller geholt, aber irgendwie werden die impirtdateien ignoriert.... Wenn ich die frisch erstellte exe ausführe läuft zwar die hauptschleife, aber wenn es dann die "nebenschleife" anspricht bricht das Programm ab. Hier mal das Hauptprogramm def main(): input = input("A für neu, B für alt") if input == 'A': import new_version.py elif zahlinput == 'B': import old_version.py if _name_ == '__main__': main()
Sag mal, hast du mal Python benutzt ohne das direkt deployen zu wollen? Dein Programm funktioniert so nie, "import new_version.py" ist Quatsch. Das .py gehört da nicht hin. input = input(...) ist extrem schlechter Stil weil du damit das builtin input() überschreibst.
:
Bearbeitet durch User
Glaub' ich dir nicht. Führst du tatsächlich genau dieses Skript in einem Interpreter aus? Schau mal, bei dem elif hast du sogar noch den falschen Variablennamen stehen ... Außerdem ist das kein Compiler.
:
Bearbeitet durch User
Sven B. schrieb: > Schau mal, bei dem elif hast du sogar noch den falschen Variablennamen > stehen ... Das erklärt, warum das zuletzt nicht mehr ging auszuwählen! Aber ja, ich führe das genauso aus.
Weiß jetzt nicht was ich dazu noch sagen soll, du postest ja nichtmal eine Fehlermeldung und es kann so offensichtlich nicht gehen ... ich wünsch dir noch viel Glück bei der Fehlersuche, so kann ich dir wirklich nicht helfen.
Was soll es überhaupt für einen Sinn ergeben? Beschreib dein Problem, da gibt es sicher elegantere Lösungen.
Robin schrieb: > ich möchte eine Python Datei für Windiws Du meinst vermutlich ein Python-Script und Windows. >compilieren, Das gibt's nicht. Python übersetzt zwar in einen Zwischencode, der ist aber vom Betriebssystem unabhängig. Kannst Du ausprobieren, indem Du es kompilierst (->http://effbot.org/pyfaq/how-do-i-create-a-pyc-file.htm, einfachste Methode: importieren) und das .pyc und nur dieses von Windows zu irgend einer Linuxbüchse rüberschaffst. Wenn eine passende Version verfügbar ist (also z.B. 2.7 hier wie da), läuft das anstandslos. >so dass ich auf > dem Zielrechner nicht immer Python installieren muss. Wenn das so gemeint wie geschrieben ist, wird kein Weg z.B. an Cython o.ä. vorbeiführen (das kompiliert tatsächlich in C und das kompiliert man dann mit einem C-Compiler). Ist i.d.R. aber eine Menge Arbeit. > > Dazu habe ich mir pyinstaller geholt, aber irgendwie werden die > impirtdateien ignoriert.... Das ist kein Compiler und Dein Programm ergibt, wie andere schon schrieben, überhaupt keinen Sinn. Außer als Demonstration dafür, daß bei manchen Programmen auf der Zielmaschine zwingend ein komplettes Python vorhanden sein muß. Hausaufgabe? Troll? Oder wirklich blutiger Anfänger? Erzähl doch mal etwas mehr.
Als folgendes. Ich habe 2x 2 fertige Python scripte. Die nicht von mir geschrieben wurden! Ich wollte einen Art "Bootloader" erstellen. Ich wollte ein kleines Textbasierendes Menü basteln. Da wird abgefragt welches von diesen Scripte gestartet werden soll. Und das dann natürlich starten.
Nachtrag. Das ganze soll dann am Ende eine exe werden. Dazu habe ich pyinstaller verwendet. Wenn ich die menu.py ausgeführt habe, dann hat das auch funktioniert. Ab nach dem erstellen der exe hat er einfach die exe beendet ohne das ausgewählte Script zu starten.
Ich könnte mir vorstellen, dass: if name == '__main__': main() nicht mehr funktioniert. Probier mal es gegzulassen #if name == '__main__': main()
> Ich habe 2x 2 fertige Python scripte. Die nicht von mir geschrieben > wurden! wie werden diese aufgerufen? Enthalten sie die Zeile ... if _name_ == "__main__": run() Wenn diese Dateien als Modul importiert werden, ist _name__ nicht auf __main_ gesetzt und du musst Modulname.run() selbst aufrufen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.