我的可执行脚本正在使用的软件包很少依赖于xlrd模块。所以我尝试使用include选项将该模块包含在安装脚本中,如图所示。但是,当runnery.py调用封装模块时,虽然xlrd文件存在于library.zip文件中,但该模块无法导入xlrd。无法导入xlrd模块
from cx_Freeze import setup, Executable
import xlrd
buildOptions = dict(
compressed = True,
optimize=2,
path=sys.path+[".\\uitls", “.\\supported”],
include_files=[“Doc"],
includes=[“xlrd”, "win32com"],
packages=["utils", ”supported"],
append_script_to_exe=True,
copy_dependent_files=True,
)
setup(
name = "TestExecutable",
version = "0.1",
options = dict(build_exe = buildOptions),
executables = [Executable(
script=r".\\codebase\\ runner.py",
icon=".\\icon.ico",
base="Win32GUI")]
)
但是,如果我尝试在runner.py中导入xlrd,它可以导入它。我不确定在这种情况下发生了什么问题,因为依赖软件包不能导入xlrd。有没有一些选择,我失踪或我做错了什么?
更新: 我发现依赖软件包是通过产生一个进程来调用的,所以它创建一个新的环境,它没有将xlrd模块写入它并且不知道包含它的library.zip。那么现在,我是否可以通过压缩文件使xlrd模块可用于包?即使它是通过新流程运行的吗? 问候,
请注意,您的“代码”包含MS Word打开/关闭引号字符......将xlrd与win32com的'includes = [“xlrd”,“win32com”],'...进行比较......请显示您实际运行的代码;不要编辑它,也不要从内存中输入它。 – 2011-03-05 08:45:00
什么会产生新的过程? runner.py?什么是您的setup.py创建的exe文件的名称?什么是生成的exe文件的名称? – 2011-03-07 23:55:55