Cx_Freeze - 自动包含模块

Posted

技术标签:

【中文标题】Cx_Freeze - 自动包含模块【英文标题】:Cx_Freeze - Include Modules automatically 【发布时间】:2013-11-20 13:12:29 【问题描述】:

我应该在下面的代码中包含我在 .py 中使用过的模块,例如 os 模块还是自动完成?排除呢?我在我的 .py 中使用了 pyqt4 是否有必要添加它的名称在这个setup.py 文件中?

import sys
from cx_Freeze import setup, Executable

# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = "packages": ["os"], "excludes": ["tkinter"]

# GUI applications require a different base on Windows (the default is for a
# console application).
base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(  name = "my-app",
        version = "0.9.0",
        description = "Copyright 2013",
        options = "build_exe": build_exe_options,
        executables = [Executable("my_module.py", base=base)])

【问题讨论】:

【参考方案1】:

正如评论所说,依赖项是自动检测的,但有时您需要手动微调它们。 os 和 tkinter 只是作为示例,您的项目可能不需要它们。一般来说,你imported 的任何东西都可以被检测到,但是如果你以其他方式加载插件库,它就找不到它们,所以你需要指定它们。

尝试冻结它,看看它是否因为缺少任何东西而失败,然后返回并将其添加到packages

【讨论】:

以上是关于Cx_Freeze - 自动包含模块的主要内容,如果未能解决你的问题,请参考以下文章

Cx_Freeze - 如何包含模块

cx_Freeze 无法包含 Cython .pyx 模块

cx_Freeze 不包含子目录中的 .py 文件

制作自动更新 zip cx_freeze 时出错,并且 esky 'Freezer' 对象没有属性 'createLibraryZip'

无法使用 cx_Freeze 编译

Python cx_Freeze 错误“没有名为 'cx_Freeze.util' 的模块”