问题描述:
命令行中输入pyinstaller之后,出现如下错误:
ModuleNotFoundError: No module named 'PyMySQL'
[15234] Failed to execute script 'main' due to unhandled exception!
解决办法:
-
原因分析:编译后再打包就只能找到main.py文件中导入的文件!
-
解决办法:办法一:使用绝对路径导入包,并在打包命令中添加–hidden-import:
import moduleName.a
隐藏导入命令:
>>> pyinstaller -F -n main --hidden-import moduleName.a main.py
办法二:显式导入所有依赖的包,也就是说依旧使用相对路径导入,但需要在某些地方告知pyinstaller要导入的包,就是把__init__.py分散到每个包的目录中去,每个__init__.py按需导入依赖的文件,但是注意:注意不能对__init__.py编译,否则打包后依旧会报错。
# __init__.py
import moduleName.a
import moduleName.b