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, ...