添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 目前 AKShare 仅支持 64 位版本的操作系统安装和使用;

  • 目前 AKShare 仅支持 Python 3.8(64 位) 及以上版本, 这里推荐 Python 3.11.x(64 位) 版本;

  • AKShare 推荐安装最新版本的 Anaconda (64 位) , 可以解决大部分环境配置问题;

  • 对于熟悉容器技术的小伙伴, 可以安装 Docker 使用, 指导教程如下: AKShare Docker 部署 .

  • 安装 AKShare

    通用安装

    pip install akshare --upgrade
    

    注意:程序运行时,文件名、文件夹名不能是:akshare

    国内安装-Python

    pip install akshare --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple
    

    目前 AKShare 已支持在树莓派 4B 上安装和使用,具体安装方法如下:

  • 安装 Raspberry Pi OS (64-bit) 操作系统,目前支持树莓派于 20231010 发布的 64 位版本

  • 通过 sudo apt-get install python3-venv 安装虚拟环境支持

  • 通过 python3 -m venv myenv 创建名为 myenv 的虚拟环境

  • 通过 source myenv/bin/activate 来激活创建好的虚拟环境

  • 通过 pip install akshare --upgrade 来安装和升级 AKShare 到最新版本

  • R 语言调用支持

    推荐使用 AKTools 项目 来部署 AKShare 的 HTTP API 使用,运行速度更快,更稳定,兼容各种编程语言,详情参考 AKTools 文档

    安装 Anaconda

    下载 Windows 64 位 Python 3.8 的 Anaconda

    安装教程参见 AKShare 文档的环境配置专栏

    安装 R 语言

    下载 RStudio

    先安装 R,再安装 RStudio,选择默认步骤安装即可。

    升级 R 语言到最新版本

    Windows

    install.packages('installr')
    library(installr)
    updateR()
    

    在安装完成后通过运行

    library(reticulate)
    use_python("/usr/local/bin/python")  # 默认使用本地的 Python, 如果需要使用虚拟环境的 Pyhton, 请参考 reticulate 的提示
    

    调用本地的 Python 程序,其中 usr 需要替换为本地计算机的用户名。

    最后展示一段演示代码,此代码在 R 语言中通过 reticulate 包来调用 AKShare 获取数据:

    library(reticulate)  # 导入 reticulate 包
    use_python("/king/local/bin/python")  # 其中的 king 为本地计算机用户名
    # use_condaenv(condaenv="ak_test", required = TRUE)  # 也可以使用 conda 创建的虚拟环境,其中的 ak_test 为虚拟环境名称
    ak <- import("akshare")  # 类似于 import akshare as ak
    stock_df <- ak$stock_zh_a_hist()  # 类似于 ak.stock_zh_a_hist()
    head(stock_df)  # 查看数据
    
            日期  开盘   收盘  最高   最低     成交量 成交额  振幅  涨跌幅 涨跌额 换手率
    1 1991-04-03 49.00 49.00 49.00 49.00      1   5000    0  22.50   9.00  0
    2 1991-04-04 48.76 48.76 48.76 48.76      3  15000    0  -0.49  -0.24  0
    3 1991-04-05 48.52 48.52 48.52 48.52      2  10000    0  -0.49  -0.24  0
    4 1991-04-06 48.28 48.28 48.28 48.28      7  34000    0  -0.49  -0.24  0
    5 1991-04-08 48.04 48.04 48.04 48.04      2  10000    0  -0.50  -0.24  0
    6 1991-04-09 47.80 47.80 47.80 47.80      4  19000    0  -0.50  -0.24  0
    

    MATLAB 调用支持

    推荐使用 AKTools 项目 来部署 AKShare 的 HTTP API 使用,运行速度更快,更稳定,兼容各种编程语言,详情参考 AKTools 文档

    安装 Anaconda

    下载 Windows 平台带 64 位 Python 的 Anaconda,其需要符合 Matlab 各版本对 Python 的支持 ,比如 Matlab R2023b 目前支持 Python3.9, 3.10, 3.11 版本。

    Anaconda 安装教程参见 AKShare 文档的环境配置专栏

    安装 MATLAB

    通过 下载 64 位 MATLAB R2023b 页面 来登录后下载激活。

    通过官方安装文档 安装 64 位 MATLAB 来 进行安装配置。

    配置环境

  • Matlab 官方文档:配置您的系统使用 Python

  • 帮助社区解答:Python virtual environments with MATLAB

  • 如果使用虚拟环境,则 pyenv(Version="C:\Users\albert\.conda\envs\matlab\python.exe"); 即可激活相关环境, 此处 C:\Users\albert\.conda\envs\matlab\python.exe 为本地虚拟环境的路径。

    测试环境配置

    在 MATLAB 命令行窗口输入:

    pyenv
    
    ans =
      PythonEnvironment - 属性:
              Version: "3.10"
           Executable: "C:\Users\albert\.conda\envs\matlab\python.EXE"
              Library: "C:\Users\albert\.conda\envs\matlab\python310.dll"
                 Home: "C:\Users\albert\.conda\envs\matlab"
               Status: NotLoaded
        ExecutionMode: InProcess
    

    则表示可以正常使用 C:\Users\albert\.conda\envs\matlab\python 虚拟环境中的 Python, 同时确保在该环境中已经安装最新版的 AKShare(可以在本地 conda 中名为 matlab 的虚拟环境中查看)。

    测试调用 AKShare 接口

    在 MATLAB 命令行窗口输入:

    py.akshare.stock_zh_a_hist
    
    ans =
      Python DataFrame - 属性:
              T: [1×1 py.pandas.core.frame.DataFrame]
             at: [1×1 py.pandas.core.indexing._AtIndexer]
          attrs: [1×1 py.dict]
           axes: [1×2 py.list]
        columns: [1×1 py.pandas.core.indexes.base.Index]
         dtypes: [1×1 py.pandas.core.series.Series]
          empty: 0
          flags: [1×1 py.pandas.core.flags.Flags]
            iat: [1×1 py.pandas.core.indexing._iAtIndexer]
           iloc: [1×1 py.pandas.core.indexing._iLocIndexer]
          index: [1×1 py.pandas.core.indexes.range.RangeIndex]
            loc: [1×1 py.pandas.core.indexing._LocIndexer]
           ndim: [1×1 py.int]
          shape: [1×2 py.tuple]
           size: [1×1 py.int]
         values: [1×1 py.numpy.ndarray]
                      日期     开盘     收盘     最高  ...    振幅    涨跌幅   涨跌额   换手率
        0     1991-04-03  49.00  49.00  49.00  ...  0.00  22.50  9.00  0.00
        1     1991-04-04  48.76  48.76  48.76  ...  0.00  -0.49 -0.24  0.00
        2     1991-04-05  48.52  48.52  48.52  ...  0.00  -0.49 -0.24  0.00
        3     1991-04-06  48.28  48.28  48.28  ...  0.00  -0.49 -0.24  0.00
        4     1991-04-08  48.04  48.04  48.04  ...  0.00  -0.50 -0.24  0.00
        ...          ...    ...    ...    ...  ...   ...    ...   ...   ...
        7867  2024-03-11  10.38  10.47  10.47  ...  1.25   0.87  0.09  0.62
        7868  2024-03-12  10.48  10.56  10.59  ...  1.72   0.86  0.09  0.85
        7869  2024-03-13  10.53  10.33  10.55  ...  2.37  -2.18 -0.23  0.91
        7870  2024-03-14  10.30  10.23  10.38  ...  1.74  -0.97 -0.10  0.73
        7871  2024-03-15  10.55  10.60  10.75  ...  2.44   3.62  0.37  1.93
        [7872 rows x 11 columns]
    

    则表示可以在 MATLAB 中调用 AKShare 的数据接口。

    调用 AKShare

    不带参数接口调用

    在 MATLAB 命令行窗口输入:

    py.akshare.macro_cnbs
    
    ans =
      Python DataFrame - 属性:
              T: [1×1 py.pandas.core.frame.DataFrame]
             at: [1×1 py.pandas.core.indexing._AtIndexer]
          attrs: [1×1 py.dict]
           axes: [1×2 py.list]
        columns: [1×1 py.pandas.core.indexes.base.Index]
         dtypes: [1×1 py.pandas.core.series.Series]
          empty: 0
            iat: [1×1 py.pandas.core.indexing._iAtIndexer]
           iloc: [1×1 py.pandas.core.indexing._iLocIndexer]
          index: [1×1 py.pandas.core.indexes.range.RangeIndex]
            loc: [1×1 py.pandas.core.indexing._LocIndexer]
           ndim: [1×1 py.int]
          shape: [1×2 py.tuple]
           size: [1×1 py.numpy.int32]
          style: [1×1 py.pandas.io.formats.style.Styler]
         values: [1×1 py.numpy.ndarray]
                  年份       居民部门     非金融企业部门  ...      实体经济部门    金融部门资产方    金融部门负债方
        0    1993-12   8.311222   91.658000  ...  107.791459   8.896441   7.128428
        1    1994-12   7.808230   82.411703  ...   98.354271   9.808787   6.796868
        2    1995-12   8.200000   81.000000  ...   97.900000  10.000000   7.000000
        3    1996-03   8.400000   81.700000  ...   99.200000  10.200000   7.200000
        4    1996-06   8.600000   82.100000  ...   99.700000  10.400000   7.400000
        ..       ...        ...         ...  ...         ...        ...        ...
        101  2020-09  61.700000  164.600000  ...  271.200000  55.800000  62.400000
        102  2020-12  62.200000  162.300000  ...  270.100000  54.200000  62.700000
        103  2021-03  62.100000  161.400000  ...  267.800000  52.800000  62.300000
        104  2021-06  62.000000  158.800000  ...  265.400000  51.300000  61.700000
        105  2021-09  62.100000  157.200000  ...  264.800000  49.200000  61.900000
        [106 rows x 9 columns]
    

    则表示可以在 MATLAB 中调用 AKShare 的不带参数的接口。

    带参数接口调用

    在 MATLAB 命令行窗口输入:

    % 注意其中的传参方式,从左到右,依次传递参数,形参(及其‘=’)都不需要,参数必须按顺序传递
    py.akshare.stock_zh_a_hist("000001", "daily", "20170301", '20210907', "")
    
    ans =
      Python DataFrame - 属性:
              T: [1×1 py.pandas.core.frame.DataFrame]
             at: [1×1 py.pandas.core.indexing._AtIndexer]
          attrs: [1×1 py.dict]
           axes: [1×2 py.list]
        columns: [1×1 py.pandas.core.indexes.base.Index]
         dtypes: [1×1 py.pandas.core.series.Series]
          empty: 0
            iat: [1×1 py.pandas.core.indexing._iAtIndexer]
           iloc: [1×1 py.pandas.core.indexing._iLocIndexer]
          index: [1×1 py.pandas.core.indexes.range.RangeIndex]
            loc: [1×1 py.pandas.core.indexing._LocIndexer]
           ndim: [1×1 py.int]
          shape: [1×2 py.tuple]
           size: [1×1 py.numpy.int32]
          style: [1×1 py.pandas.io.formats.style.Styler]
         values: [1×1 py.numpy.ndarray]
                      日期     开盘     收盘     最高  ...    振幅   涨跌幅   涨跌额   换手率
        0     2017-03-01   9.49   9.49   9.55  ...  0.84  0.11  0.01  0.21
        1     2017-03-02   9.51   9.43   9.54  ...  1.26 -0.63 -0.06  0.24
        2     2017-03-03   9.41   9.40   9.43  ...  0.74 -0.32 -0.03  0.20
        3     2017-03-06   9.40   9.45   9.46  ...  0.74  0.53  0.05  0.24
        4     2017-03-07   9.44   9.45   9.46  ...  0.63  0.00  0.00  0.17
        ...          ...    ...    ...    ...  ...   ...   ...   ...   ...
        1100  2021-09-01  17.48  17.88  17.92  ...  5.11  0.45  0.08  1.19
        1101  2021-09-02  18.00  18.40  18.78  ...  5.48  2.91  0.52  1.25
        1102  2021-09-03  18.50  18.04  18.50  ...  4.35 -1.96 -0.36  0.72
        1103  2021-09-06  17.93  18.45  18.60  ...  4.55  2.27  0.41  0.78
        1104  2021-09-07  18.60  19.24  19.56  ...  6.56  4.28  0.79  0.84
        [1105 rows x 11 columns]
    

    则表示可以在 MATLAB 中调用 AKShare 的带参数的接口。

    转换数据格式

    友情提示

  • 首先感谢群友的帮助,特此提供在 MATLAB 中转化 Pandas 格式数据为在 MATLAB 中可以用的数据类型

  • 下载该函数文件 到当前用户文件统一目录下

  • % 导入 AKShare 
    ak = py.importlib.import_module('akshare');
    % 代用 AKShare 数据接口
    temp_df = ak.stock_zh_a_hist();
    % 转化数据格式
    df = py2matlab(temp_df);
    % 展示获取到本地的数据
    disp(df)
    
  • lxml‑4.5.0‑cp36‑cp36m‑win_amd64.whl

  • lxml‑4.5.0‑cp37‑cp37m‑win_amd64.whl

  • lxml‑4.5.0‑cp38‑cp38‑win_amd64.whl

  • 进入 .whl 所在的文件夹, 执行命令即可完成安装, 如下

  • pip install 带后缀的完整路径和文件名
    

    1.大致报错如下, 出现关键词 amt :

    Traceback (most recent call last):
    File "/home/xiaoduc/.pyenv/versions/3.7.3/lib/python3.7/site-packages/pip/_vendor/requests/packages/urllib3/response.py", line 228, in _error_catcher
    yield
    File "/home/xiaoduc/.pyenv/versions/3.7.3/lib/python3.7/site-packages/pip/_vendor/requests/packages/urllib3/response.py", line 310, in read
    data = self._fp.read(amt)
    File "/home/xiaoduc/.pyenv/versions/3.7.3/lib/python3.7/site-packages/pip/_vendor/cachecontrol/filewrapper.py", line 49, in read
    data = self.__fp.read(amt)
    

    2.解决方案如下:

    pip --default-timeout=100 install -U akshare
    

    使用全局代理解决

    3. 拒绝访问错误

    1.大致报错如下, 出现关键词 拒绝访问 :

    Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Users/mac/Anaconda/anaconda3/lib/python3.7/site-packages/cv2/__init__.py'
    Consider using the `--user` option or check the permissions.
    

    2.解决方案如下:

    pip install akshare --user
    

    使用管理员权限(右键单击选择管理员权限)打开 Anaconda Prompt 进行安装

    4. 提示其他的错误

  • 方法一: 确认并升级您已安装 64 位的 Python 3.8 及以上版本

  • 方法二: 使用 conda 的虚拟环境来安装, 详见 AKShare 环境配置 板块的内容

  •