python=3.6.6,aliyun-python-sdk-core-v3==2.9.4
打包exe後運行報錯,找不到retry_config.json文件,這個文件在我python的安裝目錄下alyunsdkcore/data下是存在的
而報錯提到的目錄是一個臨時目錄,只在運行exe時建立,並且在黑框閃退後直接刪除
接下來就開始了各種找坑之路,安裝、升級模塊、sdk,卸載重裝,修改spec文件等等,特別是因爲我代碼中用到了matplotlib畫圖,多位網友提到pyinstaller打包matplotlib這個毒瘤遇到的問題,如打包過程中查詢模塊的遞歸深度超過系統代碼默認設置,但即便我剔除了那部分代碼,報錯依然存在,於是回到aliyunsdkcore這個方向,從這個方向查問題,直到 https://yq.aliyun.com/ask/479151
總之,找問題的過程一大堆,解決問題的方法其實很簡單
重裝阿里sdk
1.卸載aliyun-python-sdk-core
pip uninstall aliyun-python-sdk-core
pip uninstall aliyun-python-sdk-core-v3
2.在github上克隆代碼
https://github.com/aliyun/aliyun-openapi-python-sdk/tree/master/aliyun-python-sdk-core
3.進入aliyun-python-sdk-core 目錄下,然後使用 python setup3.py install 來安裝 aliyun-python-sdk-core 的python3版本
4.之後打包exe,執行成功
猜測原因:
在阿里雲幫助文檔中給出的安裝命令是 pip install aliyun-python-sdk-core,使用python3和3版本的pip執行該命令,安裝後確實可以正常調用sdk使用,且同時安裝了aliyun-python-sdk-core-v3,但github源碼中給了2個腳本setup.py、setup3.py ,且腳本中安裝包的name不一致,py3是aliyun-python-sdk-core-v3 ,猜測應該是因爲使用了pip 執行的安裝導致python 版本問題,但之後我又嘗試執行pip install aliyun-python-sdk-core-v3來安裝,問題還是出現,因此建議照上面的方法從github直接下載安裝。