[问题现象]
使用pyinstaller A.py -p b.py -p c.py打包多个文件
或者使用main.spec在Analysis配置好各个文件打包
打包成功后,运行main.exe仍然报错ModuleNotFoundError: No module named 'xxx'
[问题原因]
在网上查了好久好久,卡了两天。。。。。众说纷纭,还有说pyinstaller不能识别“from xxx import xxx”的语句的。。。各种被误导。。。。
后来在https://blog.csdn.net/djshichaoren/article/details/79801531
看到
经过检查,发现自己的目录下除了main.py,还有其他的一些py文件。
于是猜想是pyinstaller在打包的时候,如果main.py的目录下还有一些平级的py的话,pyinstaller就分不清楚谁是主文件入口,谁是导入文件。所以就会出现找不到模块的错误ModuleNotFoundError: No module named 'xxx'
[解决方法]
修改一下目录结构,变成了
把其他py文件都放到目录下,保证项目下只有一个main.py
这样只需要输入pyinstaller main.py 就能打包多个文件,甚至是省去了-p的手动指定操作