Seite 1 von 1

Skript auf anderen PC->Benötigte Module nicht vorhanden

Verfasst: Mittwoch 22. Oktober 2008, 18:40
von Ekud
Vorerst:
Ich verwende Python 2.5 momentan.
Zu meinem Problem:
Ich hab ein kleines Projekt, das verwendet unter anderem Elementtree und wxPython - später soll das Projekt auch auf anderen PCs laufen.
Für Windows PCs verwend ich einfach py2exe - hab ich schon mal genutzt. kenn ich.

Aber was mach ich für andere Linux/Mac OS "PCs"? Linux hat Python schon von Grund auf dabei, Mac OS afaik auch.
Nur wenn ich einfach meine Skripte rüberkopier, fehlt unter anderem wxPython und Elementree. (Später könnten noch ganz andere Module dazukommen)
Gibt es etwas, was mir die benötigten Module "zusammensucht" und entsprechend eine Struktur in einem Verzeichnis erstellt - das ich das verwend und mitliefer?
Das wäre nicht so sauber, aber wenigstens würden sie ohne Änderungen am System laufen, denk ich.

Oder hat jemand einen anderen Vorschlag?

Verfasst: Mittwoch 22. Oktober 2008, 18:59
von str1442
GNU/Linux und andere Unixoide Systeme bieten idR Paketmanager oder haben zumindest ein einheitliches, direktes Installationssystem, das den User, ganz anders als bei Windows Systemen, nicht bevormundet durch einen "Wizard" oder ähnliches. Insofern kannst du darauf vertrauen, das die meisten User sich den ganzen Stapel ohne weitere Probleme selbst zusammensuchen können oder bereits vorinstalliert haben.

Sollte dein Bestreben eher darauf abzielen, den Sourcecode zu "obfuskieren", also uneinsehbar zu machen, rate ich dir, es zu lassen. Schau mal im Wiki unter "Open Source ist nicht böse" (oder so ähnlich).

Verfasst: Mittwoch 22. Oktober 2008, 19:03
von BlackJack
`ElementTree` gehört seit Python 2.5 zur Standardbibliothek und ist dort unter `xml.etree` verfügbar.

Bei Linux würde ich einfach in der Dokumentation die erwarteten Module von Drittanbietern erwähnen, denn das meiste sollte der Anwender dort über die Paketverwaltung der Distribution installieren können.

Verfasst: Mittwoch 22. Oktober 2008, 19:46
von Leonidas
BlackJack hat geschrieben:Bei Linux würde ich einfach in der Dokumentation die erwarteten Module von Drittanbietern erwähnen, denn das meiste sollte der Anwender dort über die Paketverwaltung der Distribution installieren können.
Ja. Nützlich ist es auch ein wenig zu recherchieren und die Namen der Pakete in den entspechenden Distributionen aufzulisten. Muss natürlich nicht für alle sein, die paar größten reichen schon, wer was anderes nutzt wird es schon irgendwie hinbekommen die Paketnamen herauszufinden.

Verfasst: Mittwoch 22. Oktober 2008, 19:56
von Ekud
str1442 hat geschrieben:GNU/Linux und andere Unixoide Systeme bieten idR Paketmanager oder haben zumindest ein einheitliches, direktes Installationssystem, das den User, ganz anders als bei Windows Systemen, nicht bevormundet durch einen "Wizard" oder ähnliches. Insofern kannst du darauf vertrauen, das die meisten User sich den ganzen Stapel ohne weitere Probleme selbst zusammensuchen können oder bereits vorinstalliert haben.
Ich weiß, aber ich will nicht drauf hoffen das sie es vorinstaliert haben und ihnen auch nicht zumuten es zu installieren.

Da fällt mir jedoch ein weiterer Denkansatz ein: Beim start wird geprüft ob die benötigten Module vorhanden sind, wenn nicht wird nach Root Passwort gefragt und entsprechend nachinstalliert - inwieweit das geht, müsst ich noch schauen...
str1442 hat geschrieben: Sollte dein Bestreben eher darauf abzielen, den Sourcecode zu "obfuskieren", also uneinsehbar zu machen, rate ich dir, es zu lassen. Schau mal im Wiki unter "Open Source ist nicht böse" (oder so ähnlich).
Wenn das Programm ranwächst und größer wird, wollt ich es unter die GPL stellen
Mir geht es vorwiegend um ein paar Personen die mehrere Macs rumstehen haben - aber nicht genügend Ahnung haben um soetwas wie wxPython nachzuinstallieren


Elementree und wxPython sind auch nur Beispiele, es können später durchaus noch andere dazukommen

Verfasst: Mittwoch 22. Oktober 2008, 20:08
von fhoech
Für Mac OS gibt es py2app, die davon erzeugten Application Bundles werden aber recht groß (enthalten halt das grundlegende Python Framework + die vom Projekt verwendeten Module). Davon abgesehen funktioniert das aber gut, und in ein ZIP-Archiv gepackt ist auch die Größe erträglich. Eventuell ist zu überlegen, für Windows + Linux pyinstaller einzusetzen, so hättest du zumindest nur zwei executable-Builder, mit denen du dich auseinander setzen musst.

Verfasst: Mittwoch 22. Oktober 2008, 20:13
von Leonidas
Ekud hat geschrieben:Da fällt mir jedoch ein weiterer Denkansatz ein: Beim start wird geprüft ob die benötigten Module vorhanden sind, wenn nicht wird nach Root Passwort gefragt und entsprechend nachinstalliert - inwieweit das geht, müsst ich noch schauen...
Oh, das würde ich nicht machen. Niemand wird sein Passwort in ein Programm eingeben, dem er nicht vertraut. Da ist es sinnvoller direkt Pakete mit den entsprechenden Dependencies zu schnüren, die man dann über GUIs installieren kann.

Verfasst: Mittwoch 22. Oktober 2008, 20:40
von str1442
Ergänzend zu Leonidas:

Das verletzt außerdem zwei Unix Paradigmen, nämlich:

1. Ein Programm sollte nur eine einzige Aufgabe gut können
2. Vermeide Benutzeroberflächen, die den Benutzer fesseln.

Ich würde ein Programm das einfach mal nach irgendwas fragt, was für seine Aufgabe nicht wichtig ist nur ungerne verwenden, und wenn es um Dinge wie das root Passwort geht, dem Maintainer um die Ohren hauen ;)

Verfasst: Mittwoch 22. Oktober 2008, 20:47
von snafu
Wenn ein Modul nicht vorhanden ist, könnte dein Programm auch einfach sowas sagen wie: "Kann nicht starten, weil Modul xyz fehlt. Dieses kann aber mittels [befehl] installiert werden." Ein Copy & Paste werden deine Mac User ja noch hinkriegen, oder? ;)

Verfasst: Mittwoch 22. Oktober 2008, 21:08
von Leonidas
snafu hat geschrieben:Ein Copy & Paste werden deine Mac User ja noch hinkriegen, oder? ;)
Sofern die das Programm nicht auf dem iPhone verwenden, schon.

SCNR ;)