mac 使用 pyinstaller 打包 app 使 subprocess 失效的問題
- 使用pycharm開發(fā) pyqt5 ,其中需要用到 subprocess 下載一些內(nèi)容傅瞻,
調(diào)用命令的方式是:
import subprocess
# 這里 cmd 是一個str array
subprocess.Popen(cmd)
我們用到的命令是 aws 踢代。遇到的問題是,使用編譯器運行的時候能夠正常運行嗅骄,
但使用pyinstaller 命令打包成 .app 之后胳挎,命令就不能正常執(zhí)行。
添加log之后溺森,發(fā)現(xiàn)返回的錯誤是: can not find file or filepath 'aws'
翻了好多文章之后慕爬,找到了相似的問題:
https://stackoverflow.com/questions/25917996/after-turning-into-osx-app-python-subprocess-cant-call-external-console-comman
其中有一句話說窑眯,讓我們嘗試一下使用全路徑進行調(diào)用命令,不要用我們在mac中配置好的路徑医窿,
因為我們打包好以后磅甩,路徑會發(fā)生變化。
使用 查詢命令查詢 aws 的路徑:
which aws
把查到的全路徑替換 aws
/usr/local/bin/aws --> aws
之后再打包姥卢,發(fā)現(xiàn)命令能夠正常執(zhí)行了卷要。
僅此記錄一下,其他類型的程序打包独榴,如果遇到了調(diào)用命令行執(zhí)行命令的情況僧叉,
應該也可以采取類似的策略。