Python für Windows compilieren

Gast #4481101
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()
#4481114
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.
#4481444
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.
#4481492
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.
Gast #4481542
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.
Gast #4481550
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.
Gast #4484697
> 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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.