🚀 AI 一键生成 joinquant 策略代码

JoinQuant 平台如何获取数据及处理第三方库(如 akshare)版本问题?

joinquant | 发布时间: 2026/5/22
以下内容由 EasyQuant 生成。

问题描述

akshare低版本的也无法upgrade

我发现akshare在不同电脑上版本不同,低版本的也无法upgrade
低版本的akshare 用pip install akshare --upgrade也无法升级
维持在0.6.10版本上
高版本的用pip install akshare --upgrade经常可以更新,比如刚发现可以更新到1.12.94
不知道是否是windows版本还是Anaconad版本的差异?
有没有简便的解决办法,谢谢!

解决方案

JoinQuant 平台内置数据获取方案

在量化交易中,数据是策略的核心。虽然许多开发者在本地喜欢使用 akshare 等第三方库来获取数据,但 JoinQuant (聚宽) 平台本身已经内置了极其丰富且经过清洗的高质量数据,通常不需要额外安装第三方库即可满足绝大多数需求。

1. 行情数据获取

JoinQuant 提供了多种获取历史行情数据的 API,支持前复权、后复权及真实价格:

  • get_price:获取一支或多只标的的历史行情数据(DataFrame 格式),支持天、分钟级别。
  • get_bars:获取各种时间周期的 bar 数据,支持标准和非标准周期,且不跳过停牌数据。
  • history / attribute_history:在回测/模拟环境中快速获取历史数据。

2. 财务与基本面数据

  • get_fundamentals:查询财务数据(如市值、利润表、资产负债表等)。支持按日期或按财报季度查询,有效避免未来函数。
  • get_factor_values:直接获取聚宽因子库中数百个计算好的质量、情绪、成长等因子数据。

3. 宏观与特色数据

  • macro.run_query:获取全方位的宏观经济数据。
  • finance.run_query:获取深沪港通、股东信息、公司概况等特色数据。

关于第三方库(如 akshare)的升级与使用问题

如果您确实需要在 JoinQuant 的研究环境或您的本地环境中使用 akshare,并遇到了低版本无法通过 pip install akshare --upgrade 升级的问题(例如卡在 0.6.10),通常是由以下原因引起的:

原因分析

  1. Python 版本限制akshare 的较新版本通常要求较高的 Python 版本(例如 Python 3.8 或 3.9 以上)。如果您的 Anaconda 环境或 Windows 系统中安装的 Python 版本较低(如 Python 3.7),pip 会自动寻找支持该 Python 版本的最高 akshare 版本,这可能就是 0.6.10。
  2. 镜像源未同步:如果您使用了国内的 pip 镜像源(如清华源、阿里云源),有时镜像源可能未及时同步最新版本,或者缓存了旧版本。
  3. 依赖冲突:环境中的其他库与新版 akshare 的依赖存在冲突,导致 pip 拒绝升级。

简便的解决办法(本地环境)

方法一:检查并升级 Python 版本(最常见原因)
建议在 Anaconda 中创建一个新的、具有较高 Python 版本的虚拟环境:

conda create -n quant_env python=3.10
conda activate quant_env
pip install akshare --upgrade

方法二:强制使用官方源并清除缓存
尝试忽略本地缓存,并直接从官方 PyPI 源拉取最新版本:

pip install akshare -i https://pypi.org/simple/ --upgrade --no-cache-dir

在 JoinQuant 研究环境中使用第三方库的注意事项

根据 JoinQuant API 文档,不建议在研究环境中随意升级或大肆安装第三方库,因为这可能导致与其他内置库不兼容,甚至导致研究环境无法启动。此外,研究环境有文件个数不得大于 1 万的限制。

如果必须在 JoinQuant 研究环境中安装最新版的第三方库,请按照以下规范操作:

  1. 安装到指定目录
    在 Jupyter Notebook 的 Cell 中运行以下命令,将库安装到自定义目录,并使用 --no-dependencies 避免重复安装依赖:
    !pip install akshare --target="/home/jquser/my_libs" --upgrade
    
  2. 在代码中引入该目录
    每次使用前,将该目录加入到系统环境变量中:
    import sys
    sys.path.append("/home/jquser/my_libs")
    import akshare as ak
    

通过以上方法,您既可以充分利用 JoinQuant 平台内置的高质量数据,也能灵活解决本地或云端第三方库的版本升级问题。