2024-05-16 10:42:01 发布
网友
我有两个包(比如,dataread和datainspector),PyInstaller不知怎么没有检测到它们。因此,当运行的应用程序到达需要从这些包导入模块的点时,应用程序终止。
dataread
datainspector
最简单的解决方案是将dataread和datainspector复制到打包的应用程序中。但这将破坏打包应用程序二进制版本的意图。
我读过关于隐藏导入和钩子的文章,我认为两者都可以解决问题,但我不确定使用哪一个。
有什么建议吗? 注意:这两个包都可能包含嵌套目录。
钩子是在pyinstaller找到import语句时指定其他操作的文件。因此,如果添加“hook data.py”文件,其中包含hiddenimports = ['_proxy', 'utils', 'defs']如果pyinstaller将找到import data,它将检查hook-data.py文件中的其他命令。必须通过--additional-hooks-dir指定钩子的路径(保持工作区干净比将只编译的文件与源文件混合使用要好)
hiddenimports = ['_proxy', 'utils', 'defs']
import data
hook-data.py
--additional-hooks-dir
http://pythonhosted.org/PyInstaller/hooks.html
更简单的解决方案是与pyinstaller脚本一起使用--hidden-import=modulename。它将以导入语句的形式添加模块。
--hidden-import=modulename
如果要指定哪个文件需要哪个模块,则钩子更好。”--“隐藏导入”更简单,一次或调试。
钩子是在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
。它将以导入语句的形式添加模块。如果要指定哪个文件需要哪个模块,则钩子更好。”--“隐藏导入”更简单,一次或调试。
相关问题 更多 >
编程相关推荐