我在PyPI存储库中有一个包。 我通过运行以下命令来包含Windows安装程序来上传新版本,特别是“bdist_wininst”:
python3 setup.py register sdist bdist_wininst upload
但是,当用户运行关联的.exe文件时,它不会自行安装Python 3。 而且,即使安装了Python 3,它也不会安装任何相关的依赖项。
什么是创build一个Windows安装程序,如果没有安装,将安装Python 3,以及我的包及其依赖的最佳方式是什么?
如果这是不可能的,假设安装了Python 3,创build一个将安装我的包及其依赖关系的Windows安装程序的最佳方法是什么?
我在Ubuntu 12.04上。 如果有任何帮助,这是我的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='david@davidystephenson.com', packages=['sigactor'], license='Proprietary', long_description=open('README.txt').read(), install_requires=[ 'beautifulsoup4', 'feedparser', 'python-dateutil', 'pyyaml' ], )
你应该定义一下pynsist,它可以把Python与你的软件包捆绑在一起,并且基于已经建立的NSIS开源安装程序:
https://pypi.python.org/pypi/pynsist
Anaconda团队再次提供基于conda和NSIS的构造函数:
https://github.com/conda/constructor
最后,这种方法使用WinPython和最稳定的名为InnoSetup的安装程序:
http://cyrille.rossant.net/create-a-standalone-windows-installer-for-your-python-application/
但是,如果你的软件包不是一个库,而是一个应用程序,那么你可以用Python和所有的依赖关系将它打包(冻结),甚至使用pyinstaller压缩它:
这就是我用我所有的应用程序,即使有疯狂的互操作性依赖!
奖金 – pyinstaller的自动更新工具: