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

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.
Ekud
User
Beiträge: 5
Registriert: Montag 20. Oktober 2008, 19:50

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

Beitragvon Ekud » Mittwoch 22. Oktober 2008, 18:40

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?
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Beitragvon str1442 » Mittwoch 22. Oktober 2008, 18:59

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).
BlackJack

Beitragvon BlackJack » Mittwoch 22. Oktober 2008, 19:03

`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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 22. Oktober 2008, 19:46

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Ekud
User
Beiträge: 5
Registriert: Montag 20. Oktober 2008, 19:50

Beitragvon Ekud » Mittwoch 22. Oktober 2008, 19:56

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
fhoech
User
Beiträge: 143
Registriert: Montag 9. April 2007, 18:26

Beitragvon fhoech » Mittwoch 22. Oktober 2008, 20:08

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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 22. Oktober 2008, 20:13

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Beitragvon str1442 » Mittwoch 22. Oktober 2008, 20:40

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 ;)
Benutzeravatar
snafu
User
Beiträge: 5389
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Beitragvon snafu » Mittwoch 22. Oktober 2008, 20:47

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? ;)
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 22. Oktober 2008, 21:08

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 ;)
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: noisefloor