pyinstaller setuptools集成
subzero的Python项目详细描述
零下是什么?
SubZero的目标是允许简单快速地部署 frozen python应用程序只需最少的额外工作和开发人员时间。 与其他解决方案相比,Subzero的理念是 工作应用程序,快速比优化大小更重要 或其他因素,以及产生最终产品的因素(无论是MSI,还是 其他安装程序)只需几分钟即可安装。零下 建立在其他项目的广泛开发工作的基础上,而不是 重新发明轮子。更确切地说,它把所有的事情都联系在一起 直觉的方式。
我怎么用?
在您的设置文件中,将默认设置导入替换为以下内容:
fromsubzeroimportsetup,Executable
然后运行以下命令:
python setup.py bdist_msi
subzero将生成在entry_points和 scripts节,然后创建一个包含 可执行文件。
示例
setup(name='Name',author='Author',packages=find_packages(),version=versioneer.get_version(),cmdclass=versioneer.get_cmdclass(),install_requires=['paramiko',],entry_points={'gui_scripts':[Executable('gui = app.__main__:gui',icon_file='Icon.ico'),],'console_scripts':['console = app.__main__:console',],},options={'build_exe':{'pathex':[os.path.join(os.path.dirname(PyQt5.__file__),'Qt','bin')],'datas':[datafile,'.')],},'bdist_msi':{'upgrade_code':'84b31ed7-3985-46ad-9d07-eb4140a6d44a','shortcuts':['My Program = gui'],'wix_template_dir':os.path.abspath('./wix_templates'),}})
选项首先从传递给的选项字典全局应用 setup,如果Executable类是 为特定的entry_point或script呈现。
pyinstaller中提供了build_exe的完整选项数组 文档。强烈建议为 bdist_msi命令。许可协议将添加到 安装程序(如果在与 安装程序.py。
扩展导入发现(beta版)
如果pyinstaller无法发现所有依赖项,则可以 设置optimize_imports=False,如下所示。此选项可能会发现 以前未找到的某些导入,但它也可能使 应用程序更大。请注意,您必须在 install_requires此选项有效!
'build_exe':{'optimize_imports':False},
cython
也可以构建cython模块,因为subzero执行内置 build调用pyinstaller之前的命令。只需将模块添加到 ext_modules键:
fromsetuptoolsimportfind_packages,Extensionfromsubzeroimportsetupsetup(name='hello_world',ext_modules=[Extension('my_module',sources=['my_module.pyx'],)])