PyInstaller多隐藏导入报错:添加隐藏导入后仍无效求助
解决PyInstaller隐藏导入失效的问题
你操作里的关键错误在于:直接用pyinstaller Sub.py --specpath=test重新打包时,PyInstaller会自动重新生成spec文件,把你之前手动修改的hiddenimports覆盖成空,等于白改了。正确的流程应该是修改spec文件后,基于spec文件来打包,而不是再用脚本名触发重新生成。
下面是正确的操作步骤:
先确保spec文件生成(如果还没生成):
运行命令生成初始spec文件到test目录:pyinstaller --specpath=test Sub.py修改spec文件里的隐藏导入:
找到test目录下的Sub.spec,打开后把hiddenimports行改成:hiddenimports=['tkinter','pyautogui','pyAesCrypt'],保存修改。
基于修改好的spec文件打包:
运行命令时直接指定spec文件,而不是原脚本,这样就不会重新生成覆盖你的修改了:pyinstaller --specpath=test test/Sub.spec
额外的小提示:
- 有时候pyautogui依赖一些子模块(比如
pygetwindow、pyscreeze),如果打包后还是有导入错误,可以把这些也加入hiddenimports列表里。 - 打包前可以加上
--clean参数清理缓存,避免旧的打包残留影响结果:pyinstaller --clean --specpath=test test/Sub.spec
内容的提问来源于stack exchange,提问作者Merlin Waldhör
相关产品推荐
相关产品推荐

