gpt4 book ai didi

python - 创建 exe 时,cx_Freeze 在我的项目中找不到自定义模块

转载 作者:行者123 更新时间:2023-11-28 19:21:36 24 4
gpt4 key购买 nike

我有一个从 GUI.py 运行并导入我创建的模块的项目。具体来说,它从与 GUI.py 位于同一目录中的“库”包中导入模块。我想用 cx_Freeze 卡住脚本以创建 Windows 可执行文件,我可以创建 exe,但是当我尝试运行它时,我得到:“ImportError:没有名为 Library 的模块。”

我在输出中看到我从库中导入的所有模块都没有导入。这是我的 setup.py 的样子:

import sys, os
from cx_Freeze import setup, Executable

build_exe_options = {"packages":['Libary', 'Graphs', 'os'],
"includes":["tkinter", "csv", "subprocess", "datetime", "shutil", "random", "Library", "Graphs"],
"include_files": ['GUI','HTML','Users','Tests','E.icns', 'Graphs'],
}

base = None
exe = None
if sys.platform == "win32":
exe = Executable(
script="GUI.py",
initScript = None,
base = "Win32GUI",
targetDir = r"built",
targetName = "GUI.exe",
compress = True,
copyDependentFiles = True,
appendScriptToExe = False,
appendScriptToLibrary = False,
icon = None
)
base = "Win32GUI"

setup( name = "MrProj",
version = "2.0",
description = "My project",
options = {"build.exe": build_exe_options},
#executables = [Executable("GUI.py", base=base)]
executables = [exe]
)

我已经尝试了我在 StackOverflow 中可以找到的所有内容,并根据人们遇到的类似问题进行了大量修复。但是,无论我做什么,我似乎都无法让 cx_freeze 将我的模块导入库中。

我的 setup.py 与 GUI.py 和 Library 目录在同一目录中。

我在装有 cx_Freeze-4.3.3 的 Windows 7 笔记本电脑上运行它。

我安装了 python 3.4。

任何帮助都是天赐之物,非常感谢!

最佳答案

如果 packages 中的 Library(有趣的名字)不起作用,您可以尝试将其放入 includes 列表。为此,您可能必须明确包含每个子模块,例如:

includes = ['Library', 'Library.submodule1', 'Library.sub2', ...]

对于 include_files,您必须添加具有完整(相对)路径的每个文件。目录不起作用。

您当然可以使用 os.listdir()glob 模块将路径附加到您的 include_files,如下所示:

from glob import glob
...
include_files = ['GUI.py','HTML','Users','E.icns', 'Graphs'],
include_files += glob('Tests/*/*')
...

在某些情况下,像 sys.path.insert(0, '.') 甚至 sys.path.insert(0, '..') 可以帮助。

关于python - 创建 exe 时,cx_Freeze 在我的项目中找不到自定义模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23814950/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com