在 cx_freeze 中创建的 msi 不安装程序
Posted
技术标签:
【中文标题】在 cx_freeze 中创建的 msi 不安装程序【英文标题】:msi created in cx_freeze does not install program 【发布时间】:2019-08-03 14:17:58 【问题描述】:我创建了一个 python 程序,并使用 cx_freeze 将其转换为 exe。仅使用“python setup.py build”创建 exe 时,一切正常。现在我正在尝试使用“python setup.py bdist_msi”为其创建安装程序,起初一切似乎都很好。
安装程序弹出并要求我选择一个目录。单击下一步后,Windows 要求我接受我是从未知发布者那里安装的。接受后,下一页立即跳转到“正在完成(程序)安装程序”,“点击完成退出安装程序”。点击完成后,我在任何地方都找不到我的程序文件,安装程序似乎什么也没做。
我尝试在多台计算机上运行它,但似乎没有任何效果。我认为这是我的 setup.py 脚本的问题。这确实包括我的“资源”文件夹中的几个 qml 文件和一些图片,我的“数据和可执行文件”文件夹中有几个 csv,还有一个由我的 python 脚本调用的 exe。
from cx_Freeze import setup, Executable
# dependencies
build_exe_options =
"packages": ['atexit', "os", "sys", "csv", "time", "functools", "PySide2.QtCore", "PySide2.QtWidgets", "PySide2.QtUiTools", "PySide2.QtQuick", "PySide2.QtQml", "PySide2.QtGui", "shiboken2"],
"include_files": ['README.md', r'Resources','inputClass.py', 'selections.py','simulationOutput.py',
'Data-and-executable'],
"include_msvcr": True,
"excludes": ["Tkinter", "Tkconstants", "tcl", ],
"build_exe": "build",
bdist_msi_options =
'add_to_path': False,
'initial_target_dir': r'[ProgramFilesFolder]\%s\%s' % ("Name", "Product"),
executable = [
Executable("main.py",
base="Win32GUI",
targetName="product.exe",
icon= r"Resources\logo_icon.ico"
)
]
setup(name = "Product",
version = "0.3",
description = "Simulator",
options="bdist_msi": bdist_msi_options,
"build_exe": build_exe_options,
executables=executable
)
没有错误消息或任何其他信息可以提示我发生了什么。即使用 cmd 调用我的 .msi 也无法提供任何见解。
【问题讨论】:
创建一个完整的详细日志,如下所示:msiexec -i setup.msi -l*vx log.txt
我在控制台中运行了该代码,但我将“设置”更改为我的 .msi 文件名。当我这样做时,弹出的只是一个窗口,显示消息以“Windows® Installer.V 5.0.17763.404 msiexec /Option 嘘。我的所有文件都在“build”文件夹中,而不是“build/exe.win-amd64-3.6”文件夹中。它有效。
【讨论】:
以上是关于在 cx_freeze 中创建的 msi 不安装程序的主要内容,如果未能解决你的问题,请参考以下文章
卸载以前通过 cx_freeze bdist_msi 创建的已安装 msi