我的可執行腳本正在使用的軟件包很少依賴於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