pyinstaller打包aliyunsdkcore为exe报错

python=3.6.6,aliyun-python-sdk-core-v3==2.9.4

打包exe后运行报错,找不到retry_config.json文件,这个文件在我python的安装目录下alyunsdkcore/data下是存在的    

  pyinstaller打包aliyunsdkcore为exe报错

而报错提到的目录是一个临时目录,只在运行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直接下载安装。