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 ??????
Installation von Programm mit abfrage ob python installiert
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
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
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi!Anonymous hat geschrieben: meine überlegung: verwendung von inno-setup
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"
Code: Alles auswählen
[Run]
Filename: "msiexec.exe"; Parameters: " /i {app}\python-2.4.1.msi ALLUSERS=1 /qn"
So sollte es zumindest theoretisch funktionieren.
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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi!
Ich habe das jetzt ausgetestet. Der Eintrag im Bereich RUN muss so aussehen:
Im FILES-Bereich muss natürlich auch was stehen, damit die Installationsdatei kopiert wird:
Damit funktioniert`s.
mfg
Gerold
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}"
Code: Alles auswählen
[Files]
Source: "<Pfad_zur_Datei>\python-2.4.1.msi"; DestDir: "{app}"; Flags: ignoreversion
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
@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
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
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
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.
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
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.
... da ist die Größe des Setup-Paketes nicht mehr ausschlaggebend.querdenker hat geschrieben: 1.) die dadurch entstehende Größe des Gesamt-Packetes
Python installiert sich in den Ordner %SystemDrive%\Python24.querdenker hat geschrieben: 2.) Verzeichnis-Layout auf dem Ziel != Verzeichnis-Layout auf der Quelle
Das kann man entweder vom Setup selbst oder von einem zusätzlichen Konfigurationsprogramm erledigen lassen.querdenker hat geschrieben: 3.) alle verwendeten Module müssten dann ja auch "mitkopiert" werden
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: 4.) was ist, wenn es auf dem Rechner schon eine Python-Installation gibt
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.querdenker hat geschrieben: der Weg über py2exe, bzw über die distutils sollte doch eigentlich keine allzugroße Schwierigkeit darstellen
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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
[bitte löschen]
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
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 ...
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 ...
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 ????
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 ????
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
hi cime!
schau dich mal auf den py2exe-seiten um.
Da gibt es eine Option namens console und eine names Windows
mfg, querdenker
schau dich mal auf den py2exe-seiten um.
Da gibt es eine Option namens console und eine names Windows
mfg, querdenker