2012-04-03 4 views
5

Ich versuche, ein Installationsprogramm aus einer von uns codierten Python-Anwendung zu erstellen. Ich habe eine einfache setup.py-Datei geschrieben und es generiert eine .msi-Datei kein Problem, aber ich kann nicht herausfinden, wie Sie den Standard-Installationspfad angeben. Wir möchten nicht, dass es im Standardverzeichnis "C: \ Programme" installiert wird. Hilfe?Wie gebe ich den Standardinstallationspfad einer msi in cx_freeze und distutils an?

+0

So fand ich ich hinzufügen, kann die „- "initial-target-dir" Flag auf die Zeile: 'python setup.py bdist_msi --initial-target-dir ', aber ich hatte gehofft, es in der Datei setup.py zu tun. – Cesar

Antwort

2

Distutils ist ziemlich begrenzt in der Funktionalität, wenn es darum geht, Installer zu erstellen. Ich würde vorschlagen, dass Sie stattdessen NSIS verwenden. Es ist ziemlich einfach und lässt Sie viel mehr als disttitils besonders anfertigen.

Der andere Weg wäre manuell --initial-Zielverzeichnis auf der Liste der Argumente in setup.py (vor dem Aufruf der Funktion setup) hinzuzufügen:

if 'bdist_msi' in sys.argv: 
    sys.argv += ['--initial-target-dir', 'c:\default\path'] 
+0

Der Vorbehalt zu diesem war, dass wir es brauchen, um mit Python 3 kompatibel zu sein, das, wenn ich die Seite richtig lese, NSIS nicht unterstützt. Entschuldigung, dass ich das nicht früher erwähnte. – Cesar

+0

NSIS sollte mit allem arbeiten - es ist nicht spezifisch für Python und nicht auf Python angewiesen, also spielt die Python-Version keine Rolle. Es gibt eine andere Möglichkeit, wie Sie es auch tun könnten, und ich habe die Antwort damit aktualisiert. – aquavitae

+0

Danke! Das sollte perfekt für uns funktionieren! – Cesar

Verwandte Themen