【发布时间】:2022-08-23 16:14:33
【问题描述】:
我需要通过以下方式将我的 Python 3.10 项目编译为可执行文件安装程序并且在执行 exe 文件时似乎无法让我的导入工作。
我的 \"test\" 项目结构如下所示
src/
__init__.py
app/
__init__.py
main.py
main.spec
version.rc
lib/
core/
__init__.py
core_test.py
service/
__init__.py
service_test.py
__init__.py
在这个例子中,我正在构建主程序包含此代码的文件:
from src.lib.service import service_tst
from src.lib.core import core_tst
service_tst.do_something()
core_tst.do_something()
我的规格文件看起来像这样:
block_cipher = None
a = Analysis([\'main.py\'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name=\'main\',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
icon=\'\',
version=\'version.rc\')
到目前为止,一切都很好。
现在,使用 pyinstaller 创建 exe 文件后,出现以下错误:
ModuleNotFoundError: No module named \'src\'
这是我到目前为止所做的:
添加\"源代码\"至隐藏进口
hiddenimports=[\"src\"]
给了我以下错误:
ModuleNotFoundError: No module named \'src.lib\'
当我同时添加两者时,源代码和src.lib
hiddenimports=[\"src\", \"src.lib\"],
我仍然得到
ModuleNotFoundError: No module named \'src.lib\'
当我使用收集子模块像这样:
src_hidden_import = collect_submodules(\'src\')
a = Analysis([\'main.py\'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=src_hidden_import,
...
我得到以下错误:
ModuleNotFoundError: No module named \'src.lib\'
\"real\" 项目显然包含很多导入,都以 src. 开头,所以我需要 pyinstaller 来抓取我的整个项目/文件结构并将所有使用的脚本打包到可执行文件中。
我在这里想念什么?
-
app/__init__.py中有什么内容? -
这在里面.py 都是空的。只是为了标记模块
标签: python module pyinstaller git-submodules