python - pyinstaller 忽略挂钩文件中的隐藏导入
问题描述
我无法让 pyinstaller 使用挂钩文件正常工作。根据文档,以下设置应该可以工作,但事实并非如此。模块称为owl。
钩猫头鹰.py:
hiddenimports=['pyodbc']
命令行:
pyinstaller --clean --win-private-assemblies --onefile --name=owl --additional-hooks-dir=. service.py
我可以看到钩子文件被读取:
8704 INFO: Loading module hook "hook-xml.py"...
9193 INFO: Loading module hook "hook-owl.py"...
9219 INFO: Looking for ctypes DLLs
但规范文件不包含挂钩文件中指定的隐藏导入。
我知道我可以运行:
pyinstaller --clean --win-private-assemblies --onefile --name=owl --additional-hooks-dir=. --hidden-import=win32timezone --hidden-import=pyodbc service.py
它会生成正确的规范文件:
a = Analysis(['service.py'], pathex=['D:\\Python\\HooksTest'], binaries=[], datas=[],
hiddenimports=['win32timezone', 'pyodbc'], hookspath=['.'], runtime_hooks=[],
excludes=[], win_no_prefer_redirects=False, win_private_assemblies=True,
cipher=block_cipher, noarchive=False)
但是当我使用挂钩文件时,它不能按预期工作。我需要让钩子为我们的 CI 构建工作。
解决方案
推荐阅读
- windows - 我无法在 VBScript 中设置 ADS_UF_PASSWD_CANT_CHANGE 标志
- c++ - 在 MSVC C++ 中强制循环展开
- python - 使用 MongoDB 的 Python DIScordbot
- dictionary - Kotlin 从不可变映射和附加键值创建新映射的标准方法
- reactjs - 电子再热更新状态白屏
- javascript - svg stroke-dasharray 没有工作
- mysql - 使用 sql 中的请求不起作用并识别
- gradle - 我希望 Gradle 中的 Jacococ 在测试和集成测试之后来,但集成测试可能不存在
- angular - 我可以在 ngx-intl-tel-input 中显示标签吗?
- stm32 - 配置时无法访问STM32 DMA寄存器