pyinstaller 挂钩从未调用过
pyinstaller hooks never called
我正在尝试创建 python 程序的 EXE。该程序相当复杂,无法在此一一列举。我有一些用户定义的模块,halfwave,halfwave.utils 和 halfwave.db。我需要为这些模块创建一个挂钩,所以我制作了文件 hook-halfwave.py、hook-halfwave.db.py 和 halfwave.utils.py 并放在一个名为 hooks 的文件夹中。在我导入模块的程序中
from halfwave import ...
from halfwave.utils import ...
from halfwave.db import ...
但是 pyinstaller 永远不会调用挂钩文件。我尝试在规范文件的分析结构中设置 hookspath 并设置 --additional-hooks-path 开关。如果我将挂钩文件放在 pyinstaller 挂钩路径中,它们会被调用,但这不是一个好的选择。让pyinstaller调用hook文件的技巧是什么?
编辑:
我运行的命令是
pyinstaller -y foo.spec
.spec 文件看起来像这样
a = Analysis(['.\src\testfoo.py'],
pathex=['C:\Data\python\testfoo'],
hiddenimports=[],
hookspath='.\hooks\',
runtime_hooks=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts, ...
也尝试使用 --additional-hooks-dir 开关,但这没有区别。
谢谢
我认为hookspath
参数应该是list
个路径,如下:
a = Analysis(['.\src\testfoo.py'],
pathex=['C:\Data\python\testfoo'],
hiddenimports=[],
hookspath=['.\hooks\'],
runtime_hooks=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts, ...
我正在尝试创建 python 程序的 EXE。该程序相当复杂,无法在此一一列举。我有一些用户定义的模块,halfwave,halfwave.utils 和 halfwave.db。我需要为这些模块创建一个挂钩,所以我制作了文件 hook-halfwave.py、hook-halfwave.db.py 和 halfwave.utils.py 并放在一个名为 hooks 的文件夹中。在我导入模块的程序中
from halfwave import ...
from halfwave.utils import ...
from halfwave.db import ...
但是 pyinstaller 永远不会调用挂钩文件。我尝试在规范文件的分析结构中设置 hookspath 并设置 --additional-hooks-path 开关。如果我将挂钩文件放在 pyinstaller 挂钩路径中,它们会被调用,但这不是一个好的选择。让pyinstaller调用hook文件的技巧是什么?
编辑: 我运行的命令是
pyinstaller -y foo.spec
.spec 文件看起来像这样
a = Analysis(['.\src\testfoo.py'],
pathex=['C:\Data\python\testfoo'],
hiddenimports=[],
hookspath='.\hooks\',
runtime_hooks=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts, ...
也尝试使用 --additional-hooks-dir 开关,但这没有区别。
谢谢
我认为hookspath
参数应该是list
个路径,如下:
a = Analysis(['.\src\testfoo.py'],
pathex=['C:\Data\python\testfoo'],
hiddenimports=[],
hookspath=['.\hooks\'],
runtime_hooks=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts, ...