Python Datei mit Modulen kompilieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
campino97
User
Beiträge: 42
Registriert: Freitag 3. September 2010, 20:11

Moin
Ich hab ein Problem, ich habe ein Programm mit Pygame geschrieben und möchte das so kompilieren,dass das Modul Pygame mit kompiliert ist. Sodass ich das Programm jedem geben kann, ohne dass er sich Pygame installieren muss.
Wenn ich "python -m py_compile" im Terminal eingebe, wird nur das Programm selber kompiliert, Pygame aber nicht.
Ich hoffe ihr könnt mir helfen.
Schonmal Danke.
lunar

@campino97: Du kannst pyinstaller oder py2exe nutzen, um ein Python-Programm so zu verpacken, dass Deine Nutzer es ausführen können, ohne Python oder irgendwelche Module manuell installieren zu müssen.

"python -m py_compile" sorgt im Übrigen lediglich dafür, dass Python-Quelltext in CPython-Bytecode übersetzt wird. Man kann damit keine unabhängige ausführbare Datei erzeugen.
campino97
User
Beiträge: 42
Registriert: Freitag 3. September 2010, 20:11

Danke für die schnelle Antwort, ich möchte aber keine .exe erstellen, sondern eine Plattform unabhängige Datei.
Mir ist nicht wichtig, dass man kein Python installieren soll, sondern man soll nur keine Module wie z.B. pygame oder easygui usw. installieren müssen.
lunar

@campino: Das ist unmöglich. pygame ist in C geschrieben und mithin nicht plattformunabhängig. Jedes ganz oder teilweise in C geschriebene Python-Modul muss für jede Plattform eigens kompiliert werden.
campino97
User
Beiträge: 42
Registriert: Freitag 3. September 2010, 20:11

Ok. Das habe ich nicht gewusst.
Dann werde ich für Windoof wohl pyinstaller benutzen.
Was ist mit Linux Distributionen? Gibt es da einen Compiler so wie pyinstaller für Windoof?
lunar

@campino97: Soweit ich weiß, gibt es pyinstaller auch für Linux. Dort ist sowas allerdings eher unüblich. Dokumentiere einfach, dass pygame eine Abhängigkeit Deines Programms ist, und mithin vorher über die Paketverwaltung installiert werden muss, und vertraue darauf, dass Deine Benutzer klug genug sind, die Paketverwaltung ihrer Distribution zu bedienen. Wenn Du viel Zeit hast, kannst Du mit dem Open Build Service auch Pakete für verschiedene Distributionen.

PS: "Windoof" zu sagen, ist nicht cool, sondern kindisch. Nichts für ungut…
campino97
User
Beiträge: 42
Registriert: Freitag 3. September 2010, 20:11

Danke.
Wo bekomme ich Pyinstaller für Ubuntu zum Download? Im Softwarecenter gibt es das nicht, auf der Homepage von Pyinstaller sind die Links kaputt, zumindest findet der Server die Dateien nicht mehr. Im Terminal hab ichs auch schon probiert, da kommt aber auch nur die Fehlermeldung, dass es dieses Paket nicht gibt.
Wenn jemand weiß wo mans downloaden kann bitte posten.
Oder wenn irgendwer den Installer noch hat kann er ihn pls irgendwo hochladen und Link posten?
Danke.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Wie lunar sagte: mach das doch einfach nicht. Ich als Linux-User finds furchtbar wenn mir irgendein Hansel irgendwelche Binaries hinstellt die genauso gut auch als Quellcode gehen würde. Pygame hat so ziemlich jede Linux-Distribution in den Repositories.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

@campino97: Die Downloads auf der pyinstaller-Website http://www.pyinstaller.org funktionieren problemlos…
campino97
User
Beiträge: 42
Registriert: Freitag 3. September 2010, 20:11

@Leonidas:Stimmt, mit dem Quellcode kann ich auch mehr anfangen,trotzdem interessiert es mich mal wie das mit dem Kompilieren so funktioniert.Ich will damit ein bisschen rumexperimentieren.

@lunar: Also wenn ich auf diesen Link clicke https://github.com/downloads/pyinstalle ... .1.tar.bz2
, kommt bei mir immer diese Fehlermeldung:
Ooops!!!
An unexpected error seems
to have occurred. Why not try
refreshing your page? Or you can
contact us if the problem persists.
Bei dem Link untendrunter kommt das gleiche.
Welchen Link benutzt du denn?
lunar

@campino97: Ich benutze diesen Link… ohne Fehler.

Im Übrigen „kompiliert“ pyinstaller nicht. Er packt lediglich alle Abhängigkeiten mit einer unabhängigen Python-Version zusammen in ein ausführbares Archiv. Mit entsprechenden Programmen kann man dieses Archiv problemlos wieder entpacken und den Quelltext oder zumindest den Bytecode extrahieren.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lunar hat geschrieben:@campino97: Ich benutze diesen Link… ohne Fehler.
Funktioniert bei mir ebenfalls problemlos, sowohl mit Firefox als auch wget. Ich denke das Problem muss wohl irgendwo an deiner Seite liegen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
campino97
User
Beiträge: 42
Registriert: Freitag 3. September 2010, 20:11

mit wget gehts bei mir auch
mit firefox nich
Antworten