【akshare】解决 akshare 使用 pyinstaller 打包后无法运行的问题
版本和环境
Windows 10 平台 python 3.8.3 akshare 1.9.64 pyinstaller 5.10.1
问题描述
在调用 ak.stock_zh_a_spot_em() 等方法时,运行时正常,但使用 pyinstaller 打包后出现找不到 mini_racer.dll 的问题。

后续使用 --add-data 参数手动添加 mini_racer.dll 后,又出现找不到 calendar.json 的问题。

解决方案
我在网络上并未寻得有效的解决方案。以下是我个人的解决方案。
第一步:不使用 -F 的形式打包,使用 -D 参数打包。例如:pyinstaller -D -w ./main.py;
第二步:打开打包好之后的 .exe 文件所在地,新建名为 akshare 的文件夹。打开 akshare 文件夹,新建名为 file_fold 的文件夹;

第三步:打开 py_mini_racer 包( akshare 包的依赖包)的安装位置,找到 mini_racer.dll ,并且复制到刚刚创建的 akshare 文件夹;

第四步:打开 akshare 包的安装位置,找到 calendar.json,并且复制它到刚刚创建的 file_fold 文件夹;

第五步:打开 .exe 文件,运行成功。
P.S. 关于这个小小的问题,CSDN 上竟然有人把它的解决方案当做资源售卖?!不仅仅是本案例,很多关于软件的问题,有个别人一旦发现了解决方案,就藏起来,或者自以为功,或者拿出去售卖。诚然在商业竞争中确实需要这样,知识产权的保护确实需要这样,但对于开源软件的问题的讨论也这样做,实在是不利于软件的发展。
akshare接口一览:https://www.akshare.xyz/data/stock/stock.html