私の実行可能スクリプトが使用しているパッケージのいくつかは、xlrd モジュールに依存しています。そこで、示されているように include オプションを使用して、セットアップ スクリプトにこのモジュールを含めようとしました。しかし、runnery.py がパッケージ モジュールを呼び出すと、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 を認識していません。それで、新しいプロセスをspwaningして実行したとしても、zipファイルからパッケージでxlrdモジュールを利用できるようにすることは何とか可能ですか?よろしく、