[問題現象]
使用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的手動指定操作