【akshare】解決 akshare 使用 pyinstaller 打包后無法運行的問題
版本和環(huán)境
Windows 10 平臺?python 3.8.3 akshare 1.9.64 pyinstaller 5.10.1
問題描述
在調(diào)用 ak.stock_zh_a_spot_em() 等方法時,運行時正常,但使用 pyinstaller 打包后出現(xiàn)找不到 mini_racer.dll 的問題。

后續(xù)使用 --add-data 參數(shù)手動添加 mini_racer.dll 后,又出現(xiàn)找不到 calendar.json 的問題。

解決方案
我在網(wǎng)絡(luò)上并未尋得有效的解決方案。以下是我個人的解決方案。
第一步:不使用 -F 的形式打包,使用 -D 參數(shù)打包。例如:pyinstaller -D -w ./main.py;
第二步:打開打包好之后的 .exe 文件所在地,新建名為 akshare 的文件夾。打開 akshare 文件夾,新建名為 file_fold 的文件夾;

第三步:打開 py_mini_racer 包( akshare 包的依賴包)的安裝位置,找到 mini_racer.dll ,并且復(fù)制到剛剛創(chuàng)建的 akshare 文件夾;

第四步:打開 akshare 包的安裝位置,找到 calendar.json,并且復(fù)制它到剛剛創(chuàng)建的 file_fold 文件夾;

第五步:打開 .exe 文件,運行成功。
P.S. 關(guān)于這個小小的問題,CSDN 上竟然有人把它的解決方案當做資源售賣?!不僅僅是本案例,很多關(guān)于軟件的問題,有個別人一旦發(fā)現(xiàn)了解決方案,就藏起來,或者自以為功,或者拿出去售賣。誠然在商業(yè)競爭中確實需要這樣,知識產(chǎn)權(quán)的保護確實需要這樣,但對于開源軟件的問題的討論也這樣做,實在是不利于軟件的發(fā)展。
akshare接口一覽:https://www.akshare.xyz/data/stock/stock.html