【发布时间】:2014-11-14 07:18:13
【问题描述】:
我想使用 cx_freeze 编译带有子模块的 Python 3.3 模块。
所以,我的目录结构是:
projectname/
__init__.py
submodule1/
__init__.py
bootstrap.py
script1.py
submodule11/
script2.py
submodule2/
...
在__init__.py我导入
from submodule1 import bootstrap
并从引导程序
import submodule1.submodule11.script2
如果我运行初始化文件,一切都很好,带有子模块导入的脚本会正确执行。
当我编译它时,我使用这个 setup.py:
from cx_Freeze import setup,Executable
import sys
includes = []
excludes = ['Tkinter']
packages = ['submodule1', 'submodule2']
base = "Win32GUI"
setup(
name = 'myapp',version = '0.1',description = 'app',author = 'user',
options = {'build_exe': {'excludes':excludes,'packages':packages}},
executables = [Executable('__init__.py',base=base)]
)
并在“projectname”目录中运行脚本。
但如果我启动应用程序,我会从错误对话框中得到ImportError: no module named 'submodule1.submodule11'。
这是真的:在 library.zip 中这个子模块不存在。
我做错了什么?
【问题讨论】:
-
你能显示冻结它的输出吗?会很长,放在pastebin里吧。
标签: python compilation executable cx-freeze python-module