[Python]執行pyinstaller產生的執行檔出現No module錯誤訊息
前面介紹過使用 pyinstaller 將 .py 打包成執行檔,方便使用者執行程式。
我在 mac 終端機輸入 pyinstaller -F pyscript.py
後,
執行在 dist 資料夾底下的檔案,卻出現
`
no module named ‘somepackagename’
`
的錯誤訊息。
這表示,在打包這支程式時,並未把需要的套件打包進去?
但是我使用 .py 執行時並沒有這樣的問題啊?
表示我的電腦確實是有安裝該套件才是。
原來是因為在打包時 pyinstaller 並不知道這個套件的路徑,
所以只要加上套件的路徑位置,讓 pyinstaller 執行打包時可以找得到就好。
假如缺少的套件在 /usr/local/lib/python2.7/site-packages
,
只要將原本的
pyinstaller -F pyscript.py
改成
pyinstaller -F -p /usr/local/lib/python2.7/site-packages pyscript.py
就好了。
可以用,
import sys
print sys.path
查看系統路徑,就可以知道套件可能的位置。