pyinstaller打包aliyunsdkcore爲exe報錯

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直接下載安裝。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章