我的python是3.6,目前pyinstaller並不支持,有網友建議在Github上下載源碼,用pyinstaller_develop文件夾替換pyinstaller安裝位置下同名文件夾。這樣做之后依然生成失敗,雖然可以得到exe文件,但執行出錯。分析錯誤提示后,發現我的問題很特殊,如果你的問題和我一樣,希望可以幫到你。
我的問題是包的引用,我也不知道自己設置了什么,在引用同一個文件夾下的文件時,需要從文件夾開始,而不是直接引用文件。例如A文件夾中有a1,a2兩個文件。現在在a1中引用a2,正常應該寫
from a2 import *
但是我的環境下必須寫成
from A.a2 import *
就是這一點差別,在生成exe文件時總會提示“找不到模塊A”。對這個問題的修改方式很簡單,把程序的主入口文件,例如a1.py文件從這個文件夾取出來,放在和A文件夾同一個層級下。然后用pyinstaller a1.py就可以生成。目前親測dist下exe文件可以運行,build文件仍然無法運行,問題應該是python安裝中環境變量的設置,但用戶一般不裝python,所以我也就不糾結這個問題了。