gerold hat geschrieben:Hallo Christian!
Du kannst mit den distutils auch Installationsdateien für Windows erstellen. Diese sind dann ausführbare EXE-Dateien.
Das schrieb ich bereits:
noise hat geschrieben:
Optional kannst du wenn du willst für Window user **mit** distutils eine setup.exe backen, in der alle extensions Vorkompiliert sind. Der nachteil ist, das du für jede von dir unterstützte Python Version so eine exe backen musst, da ja immer gegen die jeweilige Python lib gelinkt werden muss (Siehe wxPython). Das ist für dich als Entwickler Mehraufwand aber für den Entwickler der deine Lib nutzt viel praktischer
Aber zu folgenden Punkte ein par Anmerkungen, wenn sie gestattet sind:
gerold hat geschrieben:
Unabhängig davon: Wenn du etwas einem Windows-User nicht zutrauen kannst, dann, dass sich dieser ein MINGW installiert um sich die DLLs über die distutils bauen zu können. Vergiss es!
Sorry, aber mit verlaub, das ist Schwachsinn! Wenn er eine Library schreibt (Und das habe ich verstanden, korrigiere mich wenn es anders ist) die Python-Entwickler benutzten können, dann kann man es schon von einem Entwickler erwarten das er es hinkriegt ein par Bunte Knöpfe zu drücken um mingw zu installieren! Oder ist hier zufällig einer der mit Python auf nem Windows-System arbeitet der das nicht hinkriegt!?
Gerold, verstehe mich bitte nicht falsch, aber wir reden hier von Programmierern und nicht von durchschnittlichen Benutzern die gerade mal wissen wie ein E-Mail Programm und office funktionieren.
gerold hat geschrieben:
Das funktioniert nicht. Liefere lieber fertig gebaute DLLs für Windows mit. Einmal für Win32 und einmal für Win64 (wenn du auch schon auf Python64 vorbereitet sein willst).
**snipp**
Im Programm prüfst du die Plattform ab und lädst nach Bedarf die Win32- oder die Win64-DLL.
Das gilt jetzt aber nur, wenn du ein Python-Paket erstellen möchtest.
Ja, aber er muss, und das habe ich auch erwähnt, das er auch für alle von Ihm unterstützten Python-Versionen eine extra setup.exe backen muss. Konkret: Wenn er Python 2.3, 2.4, 2.5 unterstützen möchte muss er für alle diese dreien eine setup.exe backen. Denn es muss immer gegen die jeweilige `libpython*.a` gelinkt werden, sonst funktioniert es nicht. Das ist, wie ich schon schrieb, ein Mehraufwand. Natürlich ist es aus unserer Sicht die später seine Libarary benutzten bequemer, aber was spricht gegen ein ``python setup.py build -c mingw32`` + ``python setup.py install``? Soviel mehraufwand ist es doch auch nun wider nicht. Und wenn er es in der README bzw. INTALL schreibt wie man das auf Windows hinkriegt, das sollte man schon von einem Programmierer (und nicht nur von dem) erwarten das er mal ein Par Minuten seiner Zeit zum lesen opfert.
gerold hat geschrieben:
Wenn du ein eigenständiges Programm schreiben möchtest, dann bist du mit den distutils mehr als schlecht bedient.
Ja wenn es nur durchschnittliche Benutzer sind, sind solche oft damit überfordert.
gerold hat geschrieben:
Denn alles wird in den "site-packages"-Ordner installiert und es gibt keine Möglichkeit, den Installationsordner in einem Windows-Setup einstellbar zu machen. Das ginge zwar in Ansätzen, wenn man ``python setup.py install`` aufruft, aber das ist ja nicht der einfachste Weg für den Benutzer.
Mit Windows-Setup meinst du ein Binary-Setup gebacken von distutils? Wenn nicht dann, auch auf Windows kann man einstellen das es wo anders als auf in den site-packages Ordner Installiert wird (Natürlich nicht wenn es ein Binary-Setup gebacken von distutils ist). Es langt schlicht und einfach ein ``--prefix="c:\my programm"``.
gerold hat geschrieben:
Ich habe vor einiger Zeit mal das Programm InstallJammer
http://www.installjammer.com/ entdeckt. Damit soll man angeblich (ich habe es leider noch nicht ausprobiert) Programminstallationen für Windows und Linux erstellen können. Was ich bis jetzt sagen kann: Es scheint wirklich toll zu sein und wird laufend weiterentwickelt.
Sorry aber ich finde ein Binary-Setup für Linux mehr als schlecht. Gerade das ist doch das schöne an Python, das ich kleine Programme installieren kann die in ausführbaren source code vorliegen. Also warum sotte ein ernsthafter Linux-Benutzer eine gefreezte variante gegenüber eine in source code Form bevorzugen, bzw. eine Binary Setup gegenüber eines setups von distutils?
Sind die Leute heute echt mit einem ``python setup.py install`` überfordert?

Auch verstehe ich nicht wie es kommt das alle denken das Windows User alle voll DAUs sind
my 0.1€
noise