2

我刚刚用 cx_Freeze 创建了一个 exe 并自豪地将它交给了一位同事......它立即崩溃了(“应用程序无法正确启动”)我很想知道他是否必须已经安装了 python 并且当他运行我的 exe 或者我应该担心的其他事情时,准备好了。(如果是这样的话,我会做更多的研究)

我正在使用 Python 2.7 64 位、Wxpython 和 Cx_Freeze 4.2.7

更新:

所以我发现下载 Python 2.7 确实可以解决问题——但这不是我真正想要的。我听说在 setup.py 脚本中选择了正确的选项,我可以真正创建一个独立的——有人知道我该怎么做吗?文件大小不是对象。

4

2 回答 2

3

cx_Freeze 的目的是让用户不需要安装 Python。但有时可能有一些 DLL 依赖项没有被 cx_Freeze 自动排序。例如,请参阅我最近关于“ImportError: DLL load failed when importing win32clipboard in application freeze freeze with cx_Freeze”的问题和答案

但是,如果您收到消息“应用程序无法正确启动”,那么这听起来好像问题是一些隐式链接 DLL 依赖项。尝试使用Dependency Walker追踪丢失的 DLL。让我们知道您的结果。

于 2012-06-21T02:03:37.247 回答
2

不,他不需要安装 Python - cx_Freeze 应该将 Python DLL 复制到构建文件夹中。确保构建文件夹中的所有文件在运行时仍与 EXE 一起使用。

但是,他可能需要安装 Python 所需的 Microsoft 'Visual C++ redistributable'。出于法律原因,我认为cx_Freeze 不能自动包含该内容(但我不是律师,我很高兴被证明是错误的)。详细信息在文档中:

http://cx_freeze.readthedocs.org/en/latest/overview.html#microsoft-visual-c-2008-redistributable-package

或者您的应用程序的捆绑可能存在其他问题。我不知道什么会导致该错误消息。

于 2012-06-13T00:36:59.590 回答