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 只是作为示例,您的项目可能不需要它们。一般来说,你import
ed 的任何东西都可以被检测到,但是如果你以其他方式加载插件库,它就找不到它们,所以你需要指定它们。
尝试冻结它,看看它是否因为缺少任何东西而失败,然后返回并将其添加到packages
。
【讨论】:
以上是关于Cx_Freeze - 自动包含模块的主要内容,如果未能解决你的问题,请参考以下文章
制作自动更新 zip cx_freeze 时出错,并且 esky 'Freezer' 对象没有属性 'createLibraryZip'