python – cx_freeze和导入模块
发布时间:2020-05-23 20:47:12 所属栏目:Python 来源:互联网
导读:我想使用cx_freeze编译带有子模块的 Python 3.3模块. 所以,我的dir结构是: projectname/ __init__.py submodule1/ __init__.py bootstrap.py script1.py submodule11/
|
我想使用cx_freeze编译带有子模块的 Python 3.3模块. 所以,我的dir结构是: projectname/
__init__.py
submodule1/
__init__.py
bootstrap.py
script1.py
submodule11/
script2.py
submodule2/
...
在__init__.py我导入 from submodule1 import bootstrap 并从引导程序 import submodule1.submodule11.script2 如果我运行init文件,一切都很好,并且正确执行带有子模块导入的脚本. 当我编译它时,我使用这个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:没有来自错误对话框的名为’submodule1.submodule11’的模块. 这是真的:在library.zip中,这个子模块不存在. 我做错了什么? 解决方法所以,我找到了答案:每个模块必须在其文件夹中有一个__init__.py文件,因此python会知道它是一个包,而不仅仅是一些文件夹.现在我编译我的项目.(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
