Seite 1 von 1

py2exe und linux

Verfasst: Dienstag 27. Mai 2008, 07:45
von The Hit-Man
habe gestern ein bischen mit py2exe rumgespielt und es hat wunderbar geklappt. bekomme eine .exe datei rausgeschmissen, die auf anderen windows rechner startbar ist. meine frage wäre, ist so was auch unter linux möglich, ohne die ganzen abhängigkeiten unter python zu installieren?
also ich meine, das die libs ( .so dateien ) mitgeliefert werden? ich hatte so etwas ähnliches, schon mal in C++ versucht, sprich, die libs dabei zupacken ( die fmod ) und dann einfach den lib pfad verbogen, da linux ja nicht in dem eigenen ordner nach libs sucht. hat aber leider nicht funktioniert. gibt es ne möglichkeit python startbar unter linux zu machen, so, das ich keine module nachinstallieren müßte?

Verfasst: Dienstag 27. Mai 2008, 08:13
von Hyperion
Wieso sollte man so etwas wollen? Zum einen ist Python bei fast jeder Distribution dabei, zum anderen sind die Pfade zu den Libs bei allen Distris relativ unterschiedlich. Ich weiß ja nicht, welche site-packages Du so meinst, aber die wichtigen sind ja auch per easy-install erhältlich, was meiner Erfahrung nach durchaus gut neben den Distributions spezifischen Installationstools funktioniert. Insofern sehe ich da einfach keinen Bedarf nach so einem System.

Verfasst: Dienstag 27. Mai 2008, 08:23
von The Hit-Man
ich möchte gerne, das mein programm, ohne irgendwelche sachen ( module ), nachinstallieren zu müssen, läuft. bei manchen linux-spielen ist es ja genau so. man installiert es und die libs, die benötigt werden, sind auch gleich dabei ( wie unter windows eben die dlls ). das ist eigentlich alles. mit easyinstall, müßte sich jeder user, ja noch die fehlenden module installieren. also was wäre, wenn dieser user gar kein internet hat? gibts denn da ne möglichkeit, nen kleinen installer zu schreiben? vielleicht könnte man die module ja einfach dabei legen?
im großen und ganzen eben, möchte ich, das ein python programm, ohne irgendetwas nachinstallieren zu müssen. gut, python, ist bei jeder distri dabei ( würde ja auch reichen ), aber nicht die module, die ich vielleicht verwenden würde. wie zum beispiel pygame.

Verfasst: Dienstag 27. Mai 2008, 08:32
von Hyperion
Aber da fängt es doch an! Pygame ist ja "nur" ein Wrapper für SDL. Was machst Du, wenn SDL nicht installiert ist? Und was machst Du, wenn eine Lib, die SDL benötigt nicht installiert ist? Wie löst Du das Problem? Alle Pakete dafür auch packen? Wo fängst Du an, wo hörst Du auf? Bei Paketen, die nur Python voraussetzen ist das noch relativ unproblematisch - bei allen anderen Sachen eben nicht.

Verfasst: Dienstag 27. Mai 2008, 08:46
von The Hit-Man
ja genau, da sehe ich ja auch mein problem drin. sdl hat ja eigentlich fast jeder drauf unter linux, aber du hast recht, muß nicht sein, das es jeder drauf hat. ich verstehe dann nicht, wie manche games ( lokigames ) und so weiter das machen. die liefern doch auch ihre dlls mit, die benötigt werden. ich denke zum beispiel an die glibc. nach einer game installation, hatte ich diese auch in dem spiele ordner gefunden. ungefähr so stelle ich es mir vor, das man eben die libs ( egal ob sie schon installiert sind ), einfach mit dabei legt. unter meinem C++ programm, hatte das damals nicht geklappt, einfach die sdl sachen mit bei zu legen. nen freund bekam beim starten des programms dann immer nen speicherzugriffsfehler.
ich wollte einfach nur, das installieren so einfach wie möglich machen und für fast jede distri.

Verfasst: Dienstag 27. Mai 2008, 09:03
von veers
Bau RPM und Debian Packete mit den entsprechenden Abhängigkeiten definiert. Und schreib eine README aus der ersichtlich wird welche Abhängigkeiten benötigt werden. Die meisten davon kannst du mit setuptools ja automatisch installieren lassen. Die anderen wie PyGame sollten in den Distributionen vorhanden sein.

Damit solltest du 95% der Benutzer abgedeckt haben:
- Die Klickibunti Fedora/SuSe/Ubuntu Benutzer dank rpm/deb
- Die Arch/Gentoo/Slackware/... Benutzer dank einer brauchbaren README

Und falls ein Benutzer Probleme damit haben sollte sind sie viel leichter zu Lösen als mit irgend einem Blob. Die Downloads sollten auch noch kleiner werden.

Gruss,
Jonas

Verfasst: Dienstag 27. Mai 2008, 10:19
von The Hit-Man
bleibt mir ja nichts anderes überig. man diese abhängikeiten, unter linux. die habe ich schon oft verflucht :(

Verfasst: Dienstag 27. Mai 2008, 10:34
von veers
The Hit-Man hat geschrieben:bleibt mir ja nichts anderes überig. man diese abhängikeiten, unter linux. die habe ich schon oft verflucht :(
Wo ist genau das Problem? Es gibt einen Grund warum wir Packetmanager verwenden. ;)

Verfasst: Dienstag 27. Mai 2008, 10:59
von The Hit-Man
ich weiß, bin ja selber linux-freak ;) wollte es nur alles nen bischen einfacher halten, für die jenigen, die noch nicht so viel darüber wissen. des weiteren hat es mich eben beeindruckt, das manche spiele eben, die man installierte, ohne weiteres liefen. die einzigste abhängigkeit, waren xfree86 und kernel.

Verfasst: Dienstag 27. Mai 2008, 11:09
von Leonidas
The Hit-Man hat geschrieben:sdl hat ja eigentlich fast jeder drauf unter linux, aber du hast recht, muß nicht sein, das es jeder drauf hat.
Wo hast du das denn her? Wenn jemand nicht unter Linux spielt, dann hat er eigentlich nie SDL installiert. Ich kenne kaum eine Distribution, die SDL per Default installiert.

Und alle shared objects mitzuliefern ist eine unglaublich sinnlose Idee...

Verfasst: Dienstag 27. Mai 2008, 12:04
von The Hit-Man
also, ich nutze debian, slackware und ubuntu. immer wenn ich X mit installiere, installiert er mir auch SDL. zu mindest bei slackware, zenwalk, ubuntu, weiß ich es genau, unter debian, war ich mir nicht sicher.

Verfasst: Dienstag 27. Mai 2008, 12:41
von Hyperion
The Hit-Man hat geschrieben:also, ich nutze debian, slackware und ubuntu. immer wenn ich X mit installiere, installiert er mir auch SDL. zu mindest bei slackware, zenwalk, ubuntu, weiß ich es genau, unter debian, war ich mir nicht sicher.
Naja, ist ja auch nicht so wichtig, ob er etwas mitinstalliert oder nicht - solange man es über den Paketmanager einspielen kann! Und SDL ist ja so "prominent", dass das eigentlich kein Problem sein sollte.

Und ich LIEBE die Abhängigkeiten unter Linux - ich muss mich aktuell wieder mal mit Java rumquälen und bin von deren Konzept "wir schmeißen alle Jars in ein Zip und geben das mit" wieder einmal abgeschreckt.

Verfasst: Dienstag 27. Mai 2008, 13:06
von Leonidas
The Hit-Man hat geschrieben:also, ich nutze debian, slackware und ubuntu. immer wenn ich X mit installiere, installiert er mir auch SDL.
Glaube ich nicht. Es gibt kein X-Paket mit einem Dependency auf libsdl1.2debian (wenn doch - sag mir bitte welches Paket, da wäre ich gespannt wer so einen Käse macht). Was bei Ubuntu sein kann ist dass Ekiga durch ubuntu-desktop reingezogen wird und das hat ein SDL-Dependency. Sonst kann ich mir das kaum vorstellen.

Und was nutzt du denn für ein Paketmanagement im Slackware? Plain Slackware hat ja keine Abhängigkeitsprüfung.

Verfasst: Dienstag 27. Mai 2008, 14:25
von The Hit-Man
Und was nutzt du denn für ein Paketmanagement im Slackware? Plain Slackware hat ja keine Abhängigkeitsprüfung.
ist richtig. bei der installation kann ich im großen eingrenzen ( oder jedes paket einzelnd bestätigen, oder nicht ) was installiert werden soll, sprich X, Gnome, KDE, Network und so weiter. also nur ca. 6 grobe unterteilungen. 6 ordner, unter dem dann alles liegt. ich finde es im großen gut, das slack nicht unbedingt aufpaßt, was man da installiert. für nen anfänger ist das eher ungeeignet.

bei debian, weiß ich es nicht mehr genau, ob SDL standartmäßig dabei war, allerdings bei zenwalk, salck und ubuntu auf jeden fall. ist ja auch so weit egal, wenn man es mal eben nachinstallieren kann ( für leute, die wissen, wie es geht ).
Und ich LIEBE die Abhängigkeiten unter Linux - ich muss mich aktuell wieder mal mit Java rumquälen und bin von deren Konzept "wir schmeißen alle Jars in ein Zip und geben das mit" wieder einmal abgeschreckt.
auch, wenn java nicht mein geschmack ist, fand ich die idee aber gut, alles in eine datei zu packen und auch netbeans finde ich ganz nett. ich finde, da haste schnell ergebnisse mit ;)

Verfasst: Dienstag 27. Mai 2008, 15:34
von veers
Wenn dir Jars gefallen verwende eggs. ;)