2013-07-02 13 views
10

Ich habe ein Paket im PyPI-Repository. Ich schließe einen Windows Installer, indem Sie den folgenden Befehl ausführen, eine neue Version zu laden, und zwar die ‚bdist_wininst‘:Python Windows Installer mit allen Abhängigkeiten?

python3 setup.py register sdist bdist_wininst upload 

Wenn jedoch ein Benutzer die zugehörigen EXE-Datei ausgeführt wird, ist es nicht installiert Python 3 selbst. Auch wenn Python 3 installiert ist, werden keine damit verbundenen Abhängigkeiten installiert.

Was ist der beste Weg, um ein Windows-Installationsprogramm zu erstellen, das Python 3 installiert, wenn es nicht installiert ist, zusammen mit meinem Paket und seinen Abhängigkeiten?

Wenn das nicht möglich ist, was ist der beste Weg, um ein Windows-Installationsprogramm zu erstellen, das mein Paket und seine Abhängigkeiten installiert, vorausgesetzt Python 3 ist installiert?

Ich bin auf Ubuntu 12.04. Wenn es von Hilfe, hier ist mein setup.py:

from distutils.core import setup 

import codecs 
try: 
    codecs.lookup('mbcs') 
except LookupError: 
    ascii = codecs.lookup('ascii') 
    func = lambda name, enc=ascii: {True: enc}.get(name=='mbcs') 
    codecs.register(func) 

setup(
    name='SIGACTor', 
    version='0.1.14dev', 
    description=open('README.txt').read(), 
    url='http://bitbucket.org/davidystephenson/sigactor', 
    author='David Y. Stephenson', 
    author_email='[email protected]', 
    packages=['sigactor'], 
    license='Proprietary', 
    long_description=open('README.txt').read(), 
    install_requires=[ 
     'beautifulsoup4', 
     'feedparser', 
     'python-dateutil', 
     'pyyaml' 
    ], 
) 
+1

Menschen dies nur einmal antworten: http://askubuntu.com/questions/315428/python-windows-installer-with-all-dependencies --- askubuntu zeigt die Leute zurück auf stackoverflow, vielleicht sollte * diese * Frage der Ort sein, wo die Frage beantwortet wird :) – mnagel

+0

Ich entschuldige mich - ich habe nicht verstanden, dass die Frage migriert werden würde. –

+1

Möchten Sie eine Windows-Programmdatei erstellen? Haben Sie versucht, 'py2exe' oder' PyInstaller' zu verwenden? Mit diesen Paketen würden Sie eine Exe erstellen, die es einem Computer ermöglicht, ohne dass Python bereits installiert ist, um Ihr Programm auszuführen. – sytech

Antwort

3

Sie sollten auf jeden Fall pynsist ausprobieren, die Python mit Ihren Paketen bündeln und basiert auf etablierten NSIS Open-Source-Installateur:

https://pypi.python.org/pypi/pynsist

Anaconda-Team bietet Constructor, die auf Conda und NSIS wieder basiert:

https://github.com/conda/constructor

Schließlich dieser Ansatz WinPython und stabilsten Installer InnoSetup genannt:

http://cyrille.rossant.net/create-a-standalone-windows-installer-for-your-python-application/

Aber wenn Ihr Paket nicht eine Bibliothek, sondern eine Anwendung, dann können Sie es (Freeze) mit Python und alle Abhängigkeiten bündeln, auch sie komprimiert mit pyinstaller:

http://www.pyinstaller.org

Dies ist, was ich für alle meine apps auch mit verrückten Interop Abhängigkeiten verwenden!

Bonus - Auto-Update-Tool für pyinstaller:

https://github.com/JMSwag/PyUpdater

+0

+1 für pyinstaller.+0 Cython nicht erwähnt. +0 Pyupdater, ist das verwirrendste Update-System der Welt. Ich habe versucht, es für 2 Tage zu aktualisieren ... jetzt. Ich finde SAAS ist der Weg zu gehen und Desktop-Apps sind leider eine sterbende Kunst. –

Verwandte Themen