如何正确创建pyinstaller钩子,或者隐藏导入?

2024-05-16 10:42:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个包(比如,datareaddatainspector),PyInstaller不知怎么没有检测到它们。因此,当运行的应用程序到达需要从这些包导入模块的点时,应用程序终止。

最简单的解决方案是将datareaddatainspector复制到打包的应用程序中。但这将破坏打包应用程序二进制版本的意图。

我读过关于隐藏导入和钩子的文章,我认为两者都可以解决问题,但我不确定使用哪一个。

有什么建议吗? 注意:这两个包都可能包含嵌套目录。


Tags: 模块版本目录应用程序文章二进制解决方案建议
1条回答
网友
1楼 · 发布于 2024-05-16 10:42:01

钩子是在pyinstaller找到import语句时指定其他操作的文件。因此,如果添加“hook data.py”文件,其中包含hiddenimports = ['_proxy', 'utils', 'defs']如果pyinstaller将找到import data,它将检查hook-data.py文件中的其他命令。必须通过--additional-hooks-dir指定钩子的路径(保持工作区干净比将只编译的文件与源文件混合使用要好)

http://pythonhosted.org/PyInstaller/hooks.html

更简单的解决方案是与pyinstaller脚本一起使用--hidden-import=modulename。它将以导入语句的形式添加模块。

如果要指定哪个文件需要哪个模块,则钩子更好。”--“隐藏导入”更简单,一次或调试。

相关问题 更多 >