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?
Antwort
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']
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
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
Danke! Das sollte perfekt für uns funktionieren! – Cesar
- 1. Wie gebe ich den PATH in NetBeans an?
- 2. Wie gebe ich die MKLocalSearchCompletion-Ergebnisse an den UISearchController
- 3. Wie gebe ich den Pfad zu meinem Java-Paket an?
- 4. Wie gebe ich Eingabe- und Ausgabedatentypen in Python-Kommentaren an?
- 5. Wie gebe ich den Spray Content-Type Response Header an?
- 6. Gebäude msi mit cx_Freeze: Valueerror: FCI Fehler 1
- 7. Wie gebe ich num_test_nets beim Neustart an?
- 8. Wie gebe ich den Pfad zu einer Rails-Anwendung an, obwohl ich im Stammordner bin?
- 9. Wie starte ich eine MSI von einer MSI
- 10. Wie gebe ich das Protokoll in einem Anker an und verwende immer noch den relativen Pfad?
- 11. Wie installiere ich python distutils
- 12. Wie gebe ich den Typ der Bereichsvariablen in einer LINQ-Abfrage an?
- 13. Wie gebe ich EditText inputType als Nummer und Passwort an?
- 14. cx_Freeze und Python 3.4
- 15. Wie gebe ich den letzten Typ einer variadischen Vorlage zurück?
- 16. JPA: Wie gebe ich den Tabellennamen an, der einer Klasse zur Laufzeit entspricht?
- 17. Warum erhalte ich nach der Installation von cx_freeze den Fehler "kein Modul namens cx_Freeze"?
- 18. Wie gebe ich den Rückgabetyp der Methode einer abstrakten Klasse an
- 19. Relativ einfache Aufgabe: Wie gebe ich den ausgewählten Artikel von einer Aktivität an eine andere zurück?
- 20. Wie gebe ich relative Pfade in CMAKE an?
- 21. Wie gebe ich das Sortierfeld und die Richtung in einer linq-Abfrage zur Laufzeit an?
- 22. Wie gebe ich das Quellcodeverzeichnis in VS an, wenn ich den Aufruf-Stack eines Speicherauszugs betrachte?
- 23. In Boo, wie gebe ich einen Array-Parameter an?
- 24. cx_freeze mit sys.stdout.flush() und Multiprozessing
- 25. Wie gebe ich an, welches Feld ich gerade bestelle?
- 26. Wie gebe ich POST-Parameter in wfetch an
- 27. Wie gebe ich den Namen der App.config-Datei meiner Anwendung in WPF an?
- 28. distutils, distutils2, pip und anforderungen
- 29. Wie signiere ich ein MSI?
- 30. Wo gebe ich "Helfer" -Methoden an?
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