2013-07-02 18 views
10

Mam pakiet w repozytorium PyPI. I zawierają instalatora Windows, uruchamiając następującą komendę, aby przesłać nową wersję, a konkretnie „bdist_wininst”:Python Windows Installer ze wszystkimi zależnościami?

python3 setup.py register sdist bdist_wininst upload 

Jednak, gdy użytkownik uruchamia skojarzony plik .exe, nie zainstalować Python 3 sama. Ponadto, nawet jeśli zainstalowany jest Python 3, nie będzie instalował żadnych powiązanych zależności.

Jaki jest najlepszy sposób utworzenia instalatora systemu Windows, który zainstaluje Python 3, jeśli nie jest zainstalowany, wraz z moim pakietem i jego zależnościami?

Jeśli nie jest to możliwe, jaki jest najlepszy sposób utworzenia instalatora systemu Windows, który zainstaluje mój pakiet i jego zależności, zakładając, że zainstalowany jest Python 3?

Jestem na Ubuntu 12.04. Jeśli to jakiejkolwiek pomocy, tutaj jest moje 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

ludzie powinni odpowiedzieć na to tylko raz: http://askubuntu.com/questions/315428/python-windows-installer-with-all-dependencies --- jak askubuntu wskazuje ludzi z powrotem na stackoverflow, może * to * pytanie powinno stać się miejscem, w którym odpowiedź na to pytanie :) – mnagel

+0

Moje przeprosiny - nie zrozumiałem, że pytanie zostanie przeniesione. –

+1

Czy chcesz wykonać plik wykonywalny systemu Windows? Czy próbowałeś użyć 'py2exe' lub' PyInstaller'? Te pakiety powinny utworzyć plik exe, który pozwala na uruchomienie komputera bez zainstalowanego już Pythona. – sytech

Odpowiedz

3

Powinieneś zdecydowanie wypróbować pynsist które mogą zepnij Python ze swoich pakietów i jest w oparciu o ugruntowaną NSIS open source instalatora:

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

zespół Anaconda zapewnia Konstruktor, który jest oparty na Conda i NSIS ponownie:

https://github.com/conda/constructor

Wreszcie podejście używając WinPython i najbardziej stabilną instalator nazywa InnoSetup:

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

Ale jeśli pakiet nie jest biblioteką ale aplikacja następnie można zapakować go (zamrożenie) z Python i wszystkich zależności, nawet skompresować stosując pyinstaller:

http://www.pyinstaller.org

to co używać do wszystkich moich aplikacjach nawet szalonych zależności międzyoperacyjnych!

Bonus - auto narzędzie aktualizacji dla pyinstaller:

https://github.com/JMSwag/PyUpdater

+0

+1 dla programu do usuwania puntów.+0 Nie wspominałem o cytoncie. +0 Pyupdater, to najbardziej mylący system aktualizacji na świecie. Próbowałem go zaktualizować na 2 dni ... teraz. Czuję, że SAAS jest drogą, a aplikacje na komputer to smutna sztuka. –

Powiązane problemy