gpt4 book ai didi

python - 使用 cx_freeze 和 bdist_msi 为 PySide 应用程序创建 MSI

转载 作者:太空狗 更新时间:2023-10-30 02:32:36 26 4
gpt4 key购买 nike

我有一个 PySide 应用程序,我正尝试使用 cx_freeze 将其打包到 MSI 中。我可以成功创建 MSI 安装程序,但我无法弄清楚如何列出要包含在包中的其他模块。这是我的 setup.py 脚本:

import sys
from cx_Freeze import setup, Executable

company_name = 'My Company Name'
product_name = 'My Gui'

bdist_msi_options = {
'upgrade_code': '{66620F3A-DC3A-11E2-B341-002219E9B01E}',
'add_to_path': False,
'initial_target_dir': r'[ProgramFilesFolder]\%s\%s' % (company_name, product_name),
# 'includes': ['atexit', 'PySide.QtNetwork'], # <-- this causes error
}

# GUI applications require a different base on Windows
base = None
if sys.platform == 'win32':
base = 'Win32GUI'

exe = Executable(script='MyGui.py',
base=base,
icon='MyGui.ico',
)

setup(name=product_name,
version='1.0.0',
description='blah',
executables=[exe],
options={'bdist_msi': bdist_msi_options})

我可以使用命令成功创建一个MSI

python setup.py bdist_msi

但是根据documentation为了打包 PySide 应用程序,我需要包含模块 atexitPySide.QtNetwork。我试图通过将 'includes' 键添加到 bdist_msi_options 来做到这一点,但取消注释该行会导致以下错误:

running bdist_msi
error: error in setup script: command 'bdist_msi' has no such option 'includes'

如何让这些模块与生成的可执行文件一起包含在内?

最佳答案

我在 cx-freeze 邮件列表上发布了同样的问题,并收到了 an answer .

'includes''packages' 选项用于 'build_exe' 命令,因此对设置的调用需要包括这两个命令。

bdist_msi_options = {
'upgrade_code': '{66620F3A-DC3A-11E2-B341-002219E9B01E}',
'add_to_path': False,
'initial_target_dir': r'[ProgramFilesFolder]\%s\%s' % (company_name, product_name),
}

build_exe_options = {
'includes': ['atexit', 'PySide.QtNetwork'],
}

...

setup(name=product_name,
version='1.0.0',
description='blah',
executables=[exe],
options={
'bdist_msi': bdist_msi_options,
'build_exe': build_exe_options})

关于python - 使用 cx_freeze 和 bdist_msi 为 PySide 应用程序创建 MSI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17307934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com