Script in Autostart ziehen
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Datenbank-Server würde ich nicht in den Autostart schreiben sondern als Windows Service implementieren, analog zu Daemons unter Unices. Dann muss sich auch kein User anmelden, sondern dass System kann ganz ohne angemeldete User funktionieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Das musste mal den Leuten von Siemens erzählen ... deren PDM-System bringt dazu mal nichts von Haus aus mitLeonidas hat geschrieben:Datenbank-Server würde ich nicht in den Autostart schreiben sondern als Windows Service implementieren, analog zu Daemons unter Unices. Dann muss sich auch kein User anmelden, sondern dass System kann ganz ohne angemeldete User funktionieren.
Und für so etwas zahlen die Firmen für die Lizenz alleine Euros im 6-7 stelligen Bereich ...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ist ja auch nicht Freie Software; in dem Bereich kann Freie Software durchaus punkten Und wir wissen ja alle das sie viel besser ist als propietäres ZeugHyperion hat geschrieben:Das musste mal den Leuten von Siemens erzählen ... deren PDM-System bringt dazu mal nichts von Haus aus mit
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ja, das habe ich mir auch schon überlegt, aber ich möchte mein Programm möglichst für beide Plattformen identisch haben.Leonidas hat geschrieben:Datenbank-Server würde ich nicht in den Autostart schreiben sondern als Windows Service implementieren, analog zu Daemons unter Unices. Dann muss sich auch kein User anmelden, sondern dass System kann ganz ohne angemeldete User funktionieren.
Oder gibt es da einen einfachen Ansatz, um einen Dienst/Daemon zu erstellen, der unter beiden Plattformen läuft.
Oder kann unter Linux das Skript auch ohne Anpassung als Daemon gestartet werden?
Dann bräuchte ich ja nur noch einen Part für Windows, der den Rest vom Programm importiert und als Service bereitstellt.
Oder wie soll ich da vorgehen?
Das Starten von Diensten ist unter Windows und Linux unterschiedlich. Unter Windows kenne ich mich nicht aus, aber unter Linux musst du korrekt forken und Signal-Handler implementieren, was es unter Windows nicht gibt.
Aber der Startcode sollte doch wirklich trivial zu schreiben sein, wenn die Logik des Dienstes entsprechend als Modul zur Verfügung steht.
Aber der Startcode sollte doch wirklich trivial zu schreiben sein, wenn die Logik des Dienstes entsprechend als Modul zur Verfügung steht.
Wollte gerade mein Programm (entwickelt unter Win für Python 2.6) unter Ubuntu testen und habe gemerkt, dass es für Ubuntu noch gar keine 2.6 Version im Paketmanager gibt.
Mein 2.6 Programm musste an ein paar Stellen angepasst werden (z.B. with_statement importieren).
Sieht das bei anderen Distris ähnlich aus? Wenn ja, will ich das Programm vielleicht doch nicht Linux kompatibel machen...
Mein 2.6 Programm musste an ein paar Stellen angepasst werden (z.B. with_statement importieren).
Sieht das bei anderen Distris ähnlich aus? Wenn ja, will ich das Programm vielleicht doch nicht Linux kompatibel machen...
Keine stabile Distribution liefert Python 2.6 zum gegenwärtigen Zeitpunkt aus. Selbst bei Gentoo ist Python 2.6 maskiert.
Bei Enterprise-Distributionen von Novell oder Red Hat musst du unter Umständen noch mit Python 2.4, wenn nicht in Extremfällen sogar mit Python 2.3 rechnen. Und je nach Zielgruppe deines Programms sind auch professionelle Windows-Admins skeptisch, wenn ein Programm sie zwingt, eine neuere Version eines bestimmten Interpreters zu installieren.
Bei Enterprise-Distributionen von Novell oder Red Hat musst du unter Umständen noch mit Python 2.4, wenn nicht in Extremfällen sogar mit Python 2.3 rechnen. Und je nach Zielgruppe deines Programms sind auch professionelle Windows-Admins skeptisch, wenn ein Programm sie zwingt, eine neuere Version eines bestimmten Interpreters zu installieren.
Dazu hab ich py2exe!lunar hat geschrieben:Und je nach Zielgruppe deines Programms sind auch professionelle Windows-Admins skeptisch, wenn ein Programm sie zwingt, eine neuere Version eines bestimmten Interpreters zu installieren.
Oder funktioniert das mit py2exe nicht, wenn ich mit den Extensions ein Service aus meinem Programm mache?
Ein Windows-Dienst muss soweit ich weiß bestimmte Eintrittsfunktionen exportieren, was py2exe wohl eher nicht kann.
Und ob py2exe nun eine gute Idee ist für einen Server-Dienst, welchen ein skeptischer Admin installieren soll, darf bezweifelt werden ...
Und ob py2exe nun eine gute Idee ist für einen Server-Dienst, welchen ein skeptischer Admin installieren soll, darf bezweifelt werden ...
Um diese Funktionen in ein Python-Programm zu intergrieren gibt es ja entsprechende Module in den "Python Extensions for Windows". Nun die Frage, ob das mit py2exe funktioniert. Vielleicht mal noch eine andere Meinung, scheinbar kennst du dich da weniger aus als ichlunar hat geschrieben:Ein Windows-Dienst muss soweit ich weiß bestimmte Eintrittsfunktionen exportieren, was py2exe wohl eher nicht kann.
Warum?lunar hat geschrieben:Und ob py2exe nun eine gute Idee ist für einen Server-Dienst, welchen ein skeptischer Admin installieren soll, darf bezweifelt werden ...
Was soll ich deiner Meinung sonst machen?
Das weiß ich.ice2k3 hat geschrieben:Um diese Funktionen in ein Python-Programm zu intergrieren gibt es ja entsprechende Module in den "Python Extensions for Windows".lunar hat geschrieben:Ein Windows-Dienst muss soweit ich weiß bestimmte Eintrittsfunktionen exportieren, was py2exe wohl eher nicht kann.
Das wiederum weiß ich nicht, ich nutze py2exe und auch dessen Alternative pyinstaller nicht.Nun die Frage, ob das mit py2exe funktioniert.
Sicherheit. Wenn ein Admin ein py2exe-Programm installiert, muss er darauf vertrauen, dass du auf Sicherheitslücken im Python-Kern selbst reagierst (da er das Programm ja nicht neu packen kann). Bei einem separat installierten Programm dagegen hat der Admin die Kontrolle über die installierte Python-Version, und Admins stehen generell auf KontrolleWarum?lunar hat geschrieben:Und ob py2exe nun eine gute Idee ist für einen Server-Dienst, welchen ein skeptischer Admin installieren soll, darf bezweifelt werden ...
Ich würde py2exe nicht nutzen und lieber eine detaillierte Installationsanleitung schreiben, die alle Abhängigkeiten und deren Installationsprozedur erklärt.Was soll ich deiner Meinung sonst machen?
Das ist nur meine persönliche Meinung, die aber natürlich auf deine Situation nicht zutreffen muss. Ignoriere das also einfach, wenn es dir nicht passt
Das Programm soll eben zum einen in größeren Unternehmen mit Server eingesetzt werden, zum anderen aber auch in kleinen Betrieben, die nicht einmal einen Server zur Verfügung haben. (Mein DB-Server muss halt dann auf einem normalen Büro-PC installiert werden).
Deshalb sollte eben eine relativ einfache Installationsart möglich sein.
Deshalb sollte eben eine relativ einfache Installationsart möglich sein.
Oder mit NSIS bzw. InnoSetup ein Installer schreiben, der alle nötigen Installer nacheinander ausführt und eine bereits installierte Python-Version selbstständig erkennt ... so schwer ist das auch nicht.
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.Leonidas hat geschrieben:Python Interpreter einfach so beipacken?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ebenso?ice2k3 hat geschrieben:Und wie könnte ich das mit GTK machen?
Wir sprechen hier schon von Megabyte? Ich komme bei Python vielleicht auf 7 MB, gepackt vielleicht 2,5 MB.ice2k3 hat geschrieben:Mal ganz von der Größe abgesehen, denn Python=150MB
Wer braucht denn GTKmm?ice2k3 hat geschrieben:GTK+gtkmm=300MB (weiß nicht, wie groß GTK ohne gtkmm ist)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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.
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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Über die C-API. GTK+ ist eine C-Library und PyGTK eine Sammlung von C und Python-Modulen die einen Zugriff auf GTK+ erlauben.ice2k3 hat geschrieben:Und wie greift pygtk auf GTK zu? Über die Environment-Variablen?
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 (former) Modvoice
Ä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?
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?