根据 pyinstaller 的文档,如果您将文件命名为 hook-fully.qualified.import.name.py
,每当您导入匹配的 时,它都会读取该文件。 py
文件。
但是,我的脚本是这样的:
import pythoncom
from win32com.shell import shell
from win32com import storagecon
...
并且 pyinstaller 拒绝识别 win32com.shell
并出现以下错误:ImportError: No module named 'win32com.shell'
。
因此,我使用以下代码创建了 hook-win32com.shell.py
:
hiddenimports = [
'win32com.shell.shell',
]
pyinstaller 从不读取这个文件,但是它确实读取了 hook-win32com.py
所以我也尝试过将 `'win32com.shell' 添加到上面的 Hook 文件但是没有做很多事情。
- 如何让 pyinstaller 读取我的 Hook 文件
- 如何让它包含
win32com.shell
? (所以我在 .exe 的运行时摆脱了“No module named”)
最佳答案
这似乎是这样的:https://github.com/pyinstaller/pyinstaller/issues/1322
显然,新的 python3 图现在在 pyinstaller 中随处使用,所以这个错误似乎也适用于 python2 用户。
我建议用 ctypes.shell32 或 cffi 重写 win32com.shell 调用。
关于python - pyinstaller 不读取我的 Hook 文件并且不适用于 win32com.shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31203580/