Installation von Programm mit abfrage ob python installiert

Probleme bei der Installation?
Antworten
Gast

Mittwoch 25. Mai 2005, 08:24

hi, ich hab nen großes prob, ich hab ein programm mit python erstellt und möchte es jetzt noch installieren, meine überlegung: verwendung von inno-setup

das prob ist eigentlich, dass ja nicht alle leute python auf ihrem rechner haben, dass heißt, bei der installation muss noch abgefragt werden, ob python schon installiert ist, und falls dies nicht der Fall ist, soll python ebenfalls mit installiert werden bzw. ein Hinweis mit einem link zu einer seite, bei der man sich python runterladen kann (bsp: python.org), ausgegeben werden ...

kann mir jemand helfen ??????
Gast

Mittwoch 25. Mai 2005, 08:36

der post da oben is übrigens von mir ... hatte nur vergessen mich einzuloggen ...
pr0stAta
User
Beiträge: 271
Registriert: Freitag 17. September 2004, 11:49
Wohnort: Bremen

Mittwoch 25. Mai 2005, 09:31

ich kann dir keine direkte antwort auf deine frage geben,
aber ich würd empfehlen, zuerst eine exe aus deinem python
programm zu erstellen und es dann in einen installer zu packen.
also python programm -> py2exe-> SetupProgramm
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 25. Mai 2005, 09:58

Anonymous hat geschrieben: meine überlegung: verwendung von inno-setup
Hi!

Die wahrscheinlich einfachste Art, Python mit InnoSetup auf den Kundenrechner zu bekommen ist die:

- Nimm die Datei python-2.4.1.msi mit in dein Setup auf und lasse diese vom Setup in den {app}-Ordner kopieren.

- Füge diese Zeilen zum Setupskript hinzu:

Code: Alles auswählen

[Run] 
Filename: "msiexec.exe /i {app}\python-2.4.1.msi"; Parameters: "ALLUSERS=1 /qn"
Es könnte aber auch sein, dass die Zeile so aussehen muss:

Code: Alles auswählen

[Run] 
Filename: "msiexec.exe"; Parameters: " /i {app}\python-2.4.1.msi ALLUSERS=1 /qn"
http://www.python.org/2.4/msi.html#automated

So sollte es zumindest theoretisch funktionieren. :wink:
Auf diese Art wird nicht lange herumgezickt --> Python wird installiert und aus :-)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 25. Mai 2005, 11:40

Hi!

Ich habe das jetzt ausgetestet. Der Eintrag im Bereich RUN muss so aussehen:

Code: Alles auswählen

[Run]
Filename: "msiexec.exe"; Parameters: " /i python-2.4.1.msi ALLUSERS=1 /qn"; WorkingDir: "{app}"
Im FILES-Bereich muss natürlich auch was stehen, damit die Installationsdatei kopiert wird:

Code: Alles auswählen

[Files]
Source: "<Pfad_zur_Datei>\python-2.4.1.msi"; DestDir: "{app}"; Flags: ignoreversion
Damit funktioniert`s.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Mittwoch 25. Mai 2005, 14:37

@gerold
Entschuldige bitte, Gerold, aber dein Vorschlag das python-msi-package mit aufzunehmen und zu installieren, halte ich für eine extrem schlechte Idee:

1.) die dadurch entstehende Größe des Gesamt-Packetes
2.) Verzeichnis-Layout auf dem Ziel != Verzeichnis-Layout auf der Quelle
3.) alle verwendeten Module müssten dann ja auch "mitkopiert" werden
4.) was ist, wenn es auf dem Rechner schon eine Python-Installation gibt

der Weg über py2exe, bzw über die distutils sollte doch eigentlich keine allzugroße Schwierigkeit darstellen, da man gerade unter Windows auf einem Rechner eine alte Python-Version installiert haben kann und dann ein mit py2exe erstelltes Programm trotzdem ausführen kann/darf. Und das, ohne sich irgendetwas von der bestehenden Installation zu zerlegen.

@unbekannter Gast:
Such mal im Forum nach py2exe, da findest du einiges.
Und auf den Wiki-Seiten für py2exe findest du auch Rezepte, wie man das dann mit NSIS oder Inno verpackt

MfG, querdenker
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 25. Mai 2005, 15:17

Hi querdenker!

Deine Einwände sind allzu verständlich, aber stelle dir mal vor, du hast ein wirklich komplexes Programmpaket programmiert. Nehmen wir mal an es ist ein Kassensystem mit Warenwirtschaft. Du hast das ganze Ding so programmiert, dass der Kunde sich das System selbst durch Python-Skripte erweitern und anpassen kann. Nebenbei schickst du deinen Kunden immer wieder ein neues Skript, welches die Funktionalität des Programmpaketes erweitert. Das Setup installiert die MSDE (den **kleinen** Microsoft SQL-Server), 30 MB Basisdatenbanken und vieles mehr.
querdenker hat geschrieben: 1.) die dadurch entstehende Größe des Gesamt-Packetes
... da ist die Größe des Setup-Paketes nicht mehr ausschlaggebend.
querdenker hat geschrieben: 2.) Verzeichnis-Layout auf dem Ziel != Verzeichnis-Layout auf der Quelle
Python installiert sich in den Ordner %SystemDrive%\Python24.
querdenker hat geschrieben: 3.) alle verwendeten Module müssten dann ja auch "mitkopiert" werden
Das kann man entweder vom Setup selbst oder von einem zusätzlichen Konfigurationsprogramm erledigen lassen.
querdenker hat geschrieben: 4.) was ist, wenn es auf dem Rechner schon eine Python-Installation gibt
Eine Python24-Installation wird nicht merkbar verändert. Wenn eine ältere Python-Version vorhanden ist, dann wird diese nicht verändert. Einzige Schwierigkeit, die ich sehe, ist, wenn die Extentions *.py, *.pyx, etc. ab jetzt immer die neue Version zum Ausführen verwenden. Das kann man aber mit der Installations-Option "REMOVE=Extensions" umgehen. So werden weiterhin alle Python-Programme standardmäsig mit dem vorhandenen, alten Python-Interpreter ausgeführt. Da ich ja weiß, dass die Version, die ich brauche sich in %SystemDrive%\Python24 befindet, darf das für mein Programm kein Problem darstellen. :-)
querdenker hat geschrieben: der Weg über py2exe, bzw über die distutils sollte doch eigentlich keine allzugroße Schwierigkeit darstellen
Er hat aber den Nachteil, dass die Python-Skripte nicht unbedingt komfortabel nachbearbeitet werden können. Das Laufzeitverhalten ist auch nicht besonders schnell und ich kann doch nicht mit jedem Zusatzprogramm, das ich beim Kunden installiere, immer wieder GTK und andere Abhängigkeiten ins Paket aufnehmen. Da installiere ich lieber mit dem Hauptprogramm alles was ich brauche und habe für die kleinen Zusatzprogramme ein Framework, dass ich verwenden kann.


Und hier die andere Seite der Medailie: All das was ich hier geschrieben habe, ist für kleine Programme, die leicht und an viele verteilt werden sollen, nicht relevant. Da gibt es wirklich einfachere Mittel, wie z.B. das aufgezeigte py2exe.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 25. Mai 2005, 15:20

[bitte löschen]
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
cime
User
Beiträge: 152
Registriert: Dienstag 24. Mai 2005, 15:49

Mittwoch 25. Mai 2005, 17:07

also erstmal danke für die ganzen antworten *freu*, ich werde die variante mit pyexe ausprobieren, da meine Programme nich so übermäßig groß sind und die Austauschbarkeit durch csv dateien geregelt ist ...

PS: beim ersten post hatte ich vergessen mich einzuloggen und beim zweiten weiß ich nich warum ich da als gast stehe ... hab daazu aber woanders nen thread aufgemacht ...
Gast

Donnerstag 26. Mai 2005, 07:54

so gleiches projekt, neues prob *g* :

mit py2exe hab ichs zwar jetzt geschafft, das ganze pyythonunabhängig zu machen, aber da es jetzt eine exe ist, zeigt der mir auch immer noch ne cmd dazu an, was ich aber unbedingt nicht möchte, da meine Programme mit Tkinter laufen und die cmd deshalb nicht benötigen, kann mir jemand helfen ????
cime
User
Beiträge: 152
Registriert: Dienstag 24. Mai 2005, 15:49

Donnerstag 26. Mai 2005, 07:55

sry, hatte schon wieder vergessen mich einzuloggen (,hatte auf den autologin gehofft ...)
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Donnerstag 26. Mai 2005, 14:31

hi cime!

schau dich mal auf den py2exe-seiten um.
Da gibt es eine Option namens console und eine names Windows


mfg, querdenker
cime
User
Beiträge: 152
Registriert: Dienstag 24. Mai 2005, 15:49

Donnerstag 26. Mai 2005, 20:23

jo, thx ich habs gefunden ... tut mir leid, aber ich hatts einfach überlesen ... werds nächste ma besser konzentrieren ....
Antworten