使用pyinstaller将akshare打包exe,无法运行终极解决方法

以我的打包语句为例:

pyinstaller.exe -F main.py

如果类似如上,会提示找不到dll(mini_racer.dll)

pyinstaller.exe -F main.py --add-data D:\Python\Python310\Lib\site-packages\py_mini_racer\mini_racer.dll;.

但是如上,还是会提示akshare\file_fold\calendar.json找不到

直接修改akshare的源码

Lib\site-packages\akshare\futures\cons.py

import sys

def get_calendar():
    """
    获取交易日历, 这里的交易日历需要按年更新, 主要是从新浪获取的
    :return: 交易日历
    :rtype: json
    """
    setting_file_name = "calendar.json"
    if sys.gettrace():
        setting_file_path = get_json_path(setting_file_name, __file__)
    else:
        setting_file_path = os.path.join(os.getcwd(), 'akshare', 'file_fold', setting_file_name)
    with open(setting_file_path, "r") as f:
        data_json = json.load(f)
    return data_json

如上将get_json_path这一行屏蔽,直接指定完整的calendar.json路径,我是将akshare文件夹拷贝到exe所在目录。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值