für alle OS programmieren und ein Paket schnüren?!

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
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

Hallo Ihr lieben.
ich hatte mit der Suchfunktion versucht nach Windows in irgend einer Kombination zu sachen, aber ich bekomme nur den Hinweis, dass Windows zu oft vor kommt.

Ich bin auf der Suche nach einer Anleitung, wenn ich in Python was für mehrere OS entwickeln will (OSX, LINUX, Windows), wie ich da vorzugehen habe und vor allem, wie ich da eine komplette Installation draus machen kann. Das ich quasi mein Programm weiter geben kann.

Kann mir da Jemand ein paar Stichwörter nennen, nach was ich suchen kann, oder hat ne Anleitung. Vielleicht auch wie es mit Lizenzen oder sowas aussieht. Ich hab eine GUI mit Qt programmiert und würde das gerne für wissenschaftliche Zwecke zur Verfügung stellen...

Danke schon mal für Eure Hinweise...
Benutzeravatar
Manchotix
User
Beiträge: 54
Registriert: Samstag 14. Januar 2012, 19:54

Hallo würmchen,

also ich habe auch noch nie solche install Packiges gemacht aber unter Linux und Mac kann ich dir ein wenig helfen, schau mal auf Github wie dort Python-packete zum download und install angeboten wird.
Musst dann in deinen Ausführbaren Programm Datein einfach die "shebang" zeile an passen und dann noch eine Setup.py schreiben dann hast du es eigentlich unter Linux/Mac schon fertig.
Unter Windows kann ich dir leider gar nicht helfen, weil ich es seit 6 Jahren nicht mehr benutze und dort noch nie Python programmiert habe aber es gibt dort ja glaube ich .exe creater oder so was.

Aber um es zusammen zufassen, es reicht wenn du die Windows .exe anbietest und unter Linux/Mac/BSD einfach eine Setup.py machst die Leute dann installieren oder ausführen.
Als Tipp schau mal bei Github oder anderen Seiten die dass gleiche machen.

Hoffe ich konnte dir helfen und bin nicht am Thema vorbei.

Wegen denn Lizenzen weiß ich leider auch nichts da sollte man aber über Google schon schnell was finden.

mfg Manchotix :)

Wenn du magst würde ich mir das Programm auch gern mal anschauen. :)
- Über Fehler sollte man sich freuen als über das richtige Ergebnis denn wir Menschen können nur aus den Fehlern lernen-
peddy
User
Beiträge: 121
Registriert: Montag 30. Juni 2008, 13:51

Ich habe es noch nie selber verwendet, aber ist das vielleicht was du suchst?

http://www.pyinstaller.org/
PyInstaller is a program that converts (packages) Python programs into stand-alone executables, under Windows, Linux, Mac OS X, Solaris and AIX. Its main advantages over similar tools are that PyInstaller works with any version of Python since 2.3, it builds smaller executables thanks to transparent compression, it is fully multi-platform, and use the OS support to load the dynamic libraries, thus ensuring full compatibility.
BlackJack

Bei der Lizenz ist zum Beispiel die Frage wie Qt angebunden wurde. Wenn es `PyQt` ist, dann ist man quasi auf die GPL festgelegt. Zumindest wenn man keine andere Lizenz kaufen kann (sofern das noch eine Option ist die von den Anbietern vorgesehen ist).
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

ich bin auf meiner Internetrecherche auf py2exe gestoßen, hat mich jetzt aber irgendwie nich so überzeugt. Vor allem scheint das nur auf Windows zu laufen. Ich versuche eben das PyInstaller aus, was erst mal nen guten Eindruck macht und genau das ist was ich suche.
Ansonsten, wie ich meine Module unter OSX oder Linux weitergeben kann, wusste ich, suche etwas wie ich ein komplettes Paket häuptsächlich für Windows schnüren kann... Ich denke das macht PyInstaller dann wohl komplett, mal sehen...

@BlackJack Danke, muss mich in diese ganze Lizenzensache mal einlesen, kann mir nie merken für was alles genau steht und was es kurz prägnant formuliert bedeutet :-) Kennst Du da zufällig ne Zusammenfassung?
Für mein Konkreten Fall gerade benutzt ich PyQt. Soll dann nicht kommerziell verteilt werden...
lunar

@ würmchen Pakete für diverse Systeme zu bauen, ist nicht trivial. In jedem Fall benötigst Du ein Exemplar jedes Systems, welches Du unterstützen möchtest, um die Anwendung zu paketieren und zu testen.

Unter Windows sind py2exe oder pyinstaller das Mittel der Wahl. Für OS X bietet sich py2app an.

Für Linux dagegen gibt es keine vergleichbare Option, und ich rate Dir aus eigener Erfahrung davon ab, Linux im Allgemeinen in Form von installierbaren Binärpaketen (e.g. DEB oder RPM) zu unterstützen. Angesichts der Unterschiede zwischen den verschiedenen Distributionen ist das für eine Einzelperson oder eine kleine Gruppe eine kaum zu bewältigende Arbeit. Wenn überhaupt, dann beschränke Dich auf zwei, drei große Distributionen, v.a. Ubuntu, Fedora und eventuell noch Open Suse.

Erstelle vor allem aber eine standardkonforme setup.py. Diese Datei benötigst Du ohnehin für py2app und py2exe. Folge dazu der Dokumentation und halte Dich an die Installationsskripte verschiedener auf Github oder Bitbucket zu findender Projekte, beispielsweise Flask oder requests. Füge Deinem Projekt dann noch eine README hinzu, in der Du die Abhängigkeiten (e.g. Qt) erläuterst. Dann können Nutzer der exotischen Linux-Distributionen selbst Hand anlegen.

Bezüglich der Lizenzen können wir Dir hier nicht helfen. Der Zusatz „für wissenschaftliche Zwecke“ lässt vermuten, dass Du das Programm nur unter entsprechenden Einschränkungen verteilen möchtest. Eine Standardlizenz für diese Art des Vertriebs ist mir nicht bekannt. Mithin musst Du Dich an einen entsprechenden Fachanwalt wenden, um einen Lizenzvertrag zu erstellen, der insbesondere den Begriff „wissenschaftliche Zwecke“ juristisch haltbar definiert (e.g. fällt darunter auch der Einsatz in den Forschungsabteilungen großer Unternehmen).

Bei derartigen Einschränkungen musst Du auch auf die Lizenzen der von Dir verwendeten Bibliothek achten. Die Lizenz der Qt-Anbindung PyQt beispielsweise erlaubt Dir in der freien Version nicht, Dein Programm unter derartigen Einschränkungen zu vertreiben. Du musst also entweder eine kommerzielle Lizenz erwerben, oder PySide nutzen. Ähnliches mag auch für weitere Bibliotheken gelten, die in Deinem Programm Verwendung finden.

Edit: Deiner letzten Antwort entnehme ich, dass Du versuchen möchtest, unter Linux ein Paket für Windows zu bauen. Das funktioniert nicht, weder mit py2exe noch mit pyinstaller. Du brauchst zwingend Windows-System mit entsprechender Python-Installation.

Bezüglich der Lizenzen geht es nicht um die Unterscheidung zwischen kommerzieller und nicht-kommerzieller Verwendung, sondern um freie und unfreie Lizenzen. Freie Lizenzen sind dadurch charakterisiert, dass sie zwar den Verkauf gestatten, dem Nutzer aber keinerlei weitere Einschränkungen auferlegt werden dürfen. Insbesondere ist eine Einschränkung der Nutzung auf wissenschaftliche Zwecke unfrei, und widerspricht damit den Lizenzbedingungen von PyQt. Konkret erlaubt die freie Lizenz von PyQt die Verwendung nur dann, wenn das Programm der GPL oder einer gewissen Anzahl weiterer freier Lizenzen unterliegen. Die genaue Liste kannst Du bei PyQt nachschlagen.
würmchen
User
Beiträge: 255
Registriert: Mittwoch 7. November 2007, 14:17

@lunar
wow, danke für die Ausführliche Antwort...
Ok, ich hab auch eine Virtuelle Maschine, auf der ich in Win7 alles testen kann... Hatte eigentlich gehofft ich könnte alles von meinem OSX aus machen, aber klar, testen sollte man schon alles...

Für die Unix Systeme würde ich kein DEB oder RPM schnüren wollen, ich denke da reicht mir wirklich ein einfaches Modul. Ging jezt in erster Linie mal darum, dass ich die GUI die ich für meine Scripte geschrieben habe gerne auch auf Windows anbieten würde... Also erst mal ohne verteilen, aber das sollte auf lange Sicht mal der Plan sein...

Danke für Eure Antworten
Antworten