Script in Autostart ziehen

Code-Stücke können hier veröffentlicht werden.
Benutzeravatar
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Beitragvon ms4py » Dienstag 17. März 2009, 21:31

Leonidas hat geschrieben:Python Interpreter einfach so beipacken?

Und wie könnte ich das mit GTK machen? Mal ganz von der Größe abgesehen, denn Python=150MB, GTK+gtkmm=300MB (weiß nicht, wie groß GTK ohne gtkmm ist), py2exe Distri~60MB.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 18. März 2009, 07:50

ice2k3 hat geschrieben:Und wie könnte ich das mit GTK machen?

Ebenso?

ice2k3 hat geschrieben:Mal ganz von der Größe abgesehen, denn Python=150MB

Wir sprechen hier schon von Megabyte? Ich komme bei Python vielleicht auf 7 MB, gepackt vielleicht 2,5 MB.

ice2k3 hat geschrieben:GTK+gtkmm=300MB (weiß nicht, wie groß GTK ohne gtkmm ist)

Wer braucht denn GTKmm?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Beitragvon ms4py » Donnerstag 19. März 2009, 11:13

Und wie greift pygtk auf GTK zu? Über die Environment-Variablen? Oder muss ich da sonst was machen.

Und mein Python hat halt ein paar Erweiterungen, die scheinbar ziemlich groß sind... Muss mal schauen, welche ich für mein Programm benötige und wie groß es dann ist.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 19. März 2009, 11:57

ice2k3 hat geschrieben:Und wie greift pygtk auf GTK zu? Über die Environment-Variablen?

Über die C-API. GTK+ ist eine C-Library und PyGTK eine Sammlung von C und Python-Modulen die einen Zugriff auf GTK+ erlauben.

GTKmm ist vom Konzept her das gleiche wie PyGTK nur eben nicht für Python sondern für C++. Wenn du aber PyGTK verwendest, kommt GTKmm an keiner Stelle ins Spiel.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Beitragvon ms4py » Samstag 21. März 2009, 17:10

Ähm, schon klar. Und ja, ich hab auch gtkmm für C++ :!: Hab das ja nur erwähnt, weil ich deshalb nicht genau weiß, wie groß GTK alleine ist.

Aber wie funktioniert das mit GTK, wenn ich das nur mitliefere ohne Installation. Woher weiß Python, in welchem Pfad GTK installiert ist?
Über die Umgebungsvariablen "GTK_BASEPATH"? Oder muss ich da noch mehr machen, um das "portable" zum Laufen zu bekommen?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 21. März 2009, 17:25

ice2k3 hat geschrieben:Aber wie funktioniert das mit GTK, wenn ich das nur mitliefere ohne Installation. Woher weiß Python, in welchem Pfad GTK installiert ist?

Es müssen die DLLs geladen werden, und dazu müssen sie gefunden werden. Wenn ein Prozess startet, wird auch im aktuellen Ordner nach DLLs gesucht und wenn sie da sind ists ok. GTK+ hat dann noch einige Konfigurationsdateien, aber soweit ich mich erinnere braucht man die nicht unbedingt.

Ich glaube hier gab es im Forum einen Thread zu GTK + py2exe oder so. Das Vorgehen ist ja recht ähnlich.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Beitragvon Trundle » Samstag 21. März 2009, 20:50

Es gibt auch ein GTK+-All-in-one-Bundle, da reicht es, wenn das bin-Verzeichnis davon in $PATH (wenn man das bei Windows denn so nennt) zu finden ist. Ist aber relativ groß, 88 MiB oder so, wobei da auch vieles dabei ist, das nicht benötigt wird und man problemlos löschen kann.

PyGtk selbst müsste man einfach aus site-packages kopieren können.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
Benutzeravatar
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Beitragvon ms4py » Sonntag 22. März 2009, 16:42

Ja für py2exe gibt es ein Vorgehen, welche Dateien für GTK man alle benötigt. Werde die einfach mal nehmen.
Aber ich würde gerne den GTK Ordner und mein Programm getrennt verteilen, wenn ich es schon so machen muss. Werde das mal testen, ob das über die Path Variable geht.

Allerdings ist meine Python-Installation schon recht groß, und zwar 80MB mit allen benötigten Packages (matplotlib, numpy, pygtk, ...)
Benutzeravatar
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Beitragvon ms4py » Freitag 27. März 2009, 23:20

Leonidas hat geschrieben:Python Interpreter einfach so beipacken?


Muss das Thema noch mal anschneiden.
Ist der Python Interpreter einfach so "portable"?
Also kann ich einfach den Ordner nehmen und auf einem anderen PC ohne Python Installation mit der python.exe die *.py Files starten?
Oder ist da noch Handarbeit in der Registry oder ähnliches nötig.

Wenn ja, dann mach ich mir mal eine MinimalInstallation in einer VM.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 27. März 2009, 23:26

ice2k3 hat geschrieben:Ist der Python Interpreter einfach so "portable"?

Ja.

ice2k3 hat geschrieben:Also kann ich einfach den Ordner nehmen und auf einem anderen PC ohne Python Installation mit der python.exe die *.py Files starten?

Ja, lediglich nicht über Doppelklick, da die Zuordnung Dateiendung->Programm in der Registry steht, aber der Interpreter an sich benötigt keine Registry-Einträge.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Beitragvon ms4py » Samstag 28. März 2009, 01:50

Mal ganz abgesehen davon, dass ich noch die VC Redistributable Packages installieren musste:

Bild

Scheint wohl doch nicht so portable zu sein, auf jeden Fall nicht Version 2.6


Edit: Mit python26.dll aus windows\system32 und mit den VC Redist und folgendem Skript funktioniert das Ganze.
[code=]@echo off
SET GTK_BIN=%CD%\..\GTK\bin
SET PATH=%PATH%;%GTK_BIN%
START ..\Python26\pythonw main.pyw[/code]

Und ihr/du haltet das immer noch für eine bessere Lösung wie der Einsatz von py2exe?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 28. März 2009, 10:56

Ja, der Redistributable wird über kurz oder lang auf allen Rechnern zu finden sein (da war ja mit dem VC7 Redistributable nicht anders) und man man muss nicht jedes mal eine neue Applikation zusammenbauen, testen etc. Updates sind auch einfacher und der User hat schon mal einen Python-Interpreter im System.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Beitragvon ms4py » Samstag 28. März 2009, 15:30

OK, aber als Seervice wird das ganze so dann nicht funktionieren oder?
Will auf jeden Fall keinen eigenen schreiben, das Python-Programm an sich soll so bleiben, damit es auch auf Linux läuft.

Und wenn ich es mit instsrv.exe und srvany.exe installier, funktioniert dann auch meine GUI/TrayIcon?

Edit: Hab das jetzt getestet mit instrv.exe. Läuft (wie gedacht) ohne GUI, Funktionalitäten sind aber da.

Die GUI in einen extra Prozess auslagern und die 2 Komponenten mit IPC zu verbinden scheint mir dann das sinnvollste. Da das ganze eh mit Pyro läuft, werde ich die IPC damit realisieren.
Dann kann ich die GUI (und damit auch GTK und die Packages) als optional mit rein nehmen. Auf einem normalen Server braucht ja auch keiner die GUI dazu. Die GUI ist eh vor allem nur dazu gedacht, falls ein Client gleichzeitig als Server eingesetzt wird. Dann reicht ja auch die Python Standard Installation ohne extra Packages.

Oder haltet ihr das für keine gute Idee?

Edit2: Noch mal was: Für diesen Datenbankserver ist der Einsatz von Psyco sicherlich sinnvoll, oder? Dann muss ich das nämlich noch hinzupacken.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 28. März 2009, 18:19

Psyco hilft bei CPU-lastigen Sachen, für IO-lastiges hilft JIT-Kompilierung kaum.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Beitragvon ms4py » Samstag 28. März 2009, 18:22

Leonidas hat geschrieben:Psyco hilft bei CPU-lastigen Sachen, für IO-lastiges hilft JIT-Kompilierung kaum.


Kaum oder gar nicht? Lohnt es sich oder nicht?

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder