407 Star 1.8K Fork 753

GVPfasiondog / hikyuu

 / 详情

在 Windows 10 上安装 Hikyuu 的详细步骤及存在问题

待办的
创建于  
2022-05-14 13:10

折腾了好几天,始终无法让 hikyuu 跑起来,心情大受打击,估计是哪里没注意到,详细记录过程如下,请大神不吝指点。

安装思路:

  1. 创建并激活 conda 环境。
  2. 在刚创建的环境中安装 hikyuu。
  3. 运行 HikyuuTDX 导入数据,以便证实 hikyuu 已正确安装。

下面的尝试过程,在三台 Windows 10 电脑上进行了测试,结果基本是一样的:在 Python 3.10 上无法完成安装,在 Python 3.8 和 3.9 上无法启动数据导入工具,在 Python 3.7 上可运行数据导入工具,但无法成功导入数据。

第一次尝试,采用 Python 3.10

采用 Python 3.10 无法完成安装,提示 Failed to build pynng

(base) C:\Users\dc1y>conda create -n hky310 python=3.10

(base) C:\Users\dc1y>conda activate hky310

(hky310) C:\Users\dc1y>pip install hikyuu
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting hikyuu
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/e1/2d/56a0f3d8371e12efcf7faf95c657bfe9996edeb1a87cf3a28f1f35b1ad4a/hikyuu-1.2.3-cp310-none-win_amd64.whl (9.2 MB)
............ 省略 ............
Building wheels for collected packages: pynng
  Building wheel for pynng (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: 'D:\AppData\Anaconda3\envs\hky310\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\dc1y\\AppData\\Local\\Temp\\pip-install-rd8dkl7r\\pynng_bfe752bf21f74bfb87d563d87667f3b4\\setup.py'"'"'; __file__='"'"'C:\\Users\\dc1y\\AppData\\Local\\Temp\\pip-install-rd8dkl7r\\pynng_bfe752bf21f74bfb87d563d87667f3b4\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\dc1y\AppData\Local\Temp\pip-wheel-peblryxl'
       cwd: C:\Users\dc1y\AppData\Local\Temp\pip-install-rd8dkl7r\pynng_bfe752bf21f74bfb87d563d87667f3b4\
  Complete output (7 lines):
  D:\AppData\Anaconda3\envs\hky310\lib\site-packages\setuptools\installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
    warnings.warn(
  running bdist_wheel
  running build
  running build_py
  error: [WinError 2] 系统找不到指定的文件。
  building mbedtls with: ['cmake', '-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true', '-A', 'x64', '-DENABLE_PROGRAMS=OFF', '-DCMAKE_BUILD_TYPE=Release', '-DCMAKE_INSTALL_PREFIX=../prefix', '..']
  ----------------------------------------
  ERROR: Failed building wheel for pynng
  Running setup.py clean for pynng
Failed to build pynng

在 pypi.org 上搜索 pynng,发现其 Build Distribution 最高支持到 cp39,决定换 Python 3.9 试试看……

第二次尝试,采用 Python 3.9

采用 Python 3.9 可顺利完成 hikyuu 的安装,不报错:

(base) C:\Users\dc1y>conda create -n hky39 python=3.9

(base) C:\Users\dc1y>conda activate hky39

(hky39) C:\Users\dc1y>pip install hikyuu
Collecting hikyuu
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/b0/49/770eea6afd27c0b92dcfb3fcca3707a2e1cf05c5d1a5c42304a6913b6557/hikyuu-1.2.3-cp39-none-win_amd64.whl (9.2 MB)
............ 省略 ............

安装 TA_Lib(先下载对应版本、并移动到用户目录下):

(hky39) C:\Users\dc1y>pip install TA_Lib-0.4.24-cp39-cp39-win_amd64.whl
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Processing c:\users\dc1y\ta_lib-0.4.24-cp39-cp39-win_amd64.whl
Requirement already satisfied: numpy in c:\users\dc1y\appdata\roaming\python\python39\site-packages (from TA-Lib==0.4.24) (1.22.3)
Installing collected packages: TA-Lib
Successfully installed TA-Lib-0.4.24

开始测试导入数据 —— 短暂出现等待光标后,没有任何反应,并回到命令提示符:

(hky39) C:\Users\dc1y>HikyuuTDX.exe

(hky39) C:\Users\dc1y>

改用 importdata,提示 ImportError: DLL load failed while importing utilsextension: 找不到指定的模块 后,退出 Hikyuu 系统。

(hky39) C:\Users\dc1y>importdata.exe
Initialize hikyuu_1.2.3_202203061739_x64_release ...
2022-05-14 10:49:18,376 [INFO] Note: NumExpr detected 12 cores but "NUMEXPR_MAX_THREADS" not set, so enforcing safe limit of 8. [numexpr.utils::_init_num_threads]
2022-05-14 10:49:18,376 [INFO] NumExpr defaulting to 8 threads. [numexpr.utils::_init_num_threads]
Traceback (most recent call last):
  File "D:\AppData\Anaconda3\envs\hky39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "D:\AppData\Anaconda3\envs\hky39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "D:\AppData\Anaconda3\envs\hky39\Scripts\importdata.exe\__main__.py", line 4, in <module>
  File "D:\AppData\Anaconda3\envs\hky39\lib\site-packages\hikyuu\gui\importdata.py", line 15, in <module>
    from hikyuu.gui.data.UseTdxImportToH5Thread import UseTdxImportToH5Thread
  File "D:\AppData\Anaconda3\envs\hky39\lib\site-packages\hikyuu\gui\data\UseTdxImportToH5Thread.py", line 29, in <module>
    from hikyuu.gui.data.ImportTdxToH5Task import ImportTdxToH5Task
  File "D:\AppData\Anaconda3\envs\hky39\lib\site-packages\hikyuu\gui\data\ImportTdxToH5Task.py", line 30, in <module>
    from hikyuu.data.tdx_to_h5 import tdx_import_data as h5_import_data
  File "D:\AppData\Anaconda3\envs\hky39\lib\site-packages\hikyuu\data\tdx_to_h5.py", line 32, in <module>
    import tables as tb
  File "D:\AppData\Anaconda3\envs\hky39\lib\site-packages\tables\__init__.py", line 45, in <module>
    from .utilsextension import get_hdf5_version as _get_hdf5_version
ImportError: DLL load failed while importing utilsextension: 找不到指定的模块。
Quit Hikyuu system!

(hky39) C:\Users\dc1y>

按 fasiondog 提示直接运行 HikyuuTDX.py,出现与前面基本相同的错误(ImportError: DLL load failed while importing utilsextension: 找不到指定的模块):

(hky39) D:\AppData\Anaconda3\envs\hky39\Lib\site-packages\hikyuu\gui>python HikyuuTDX.py
Initialize hikyuu_1.2.3_202203061739_x64_release ...
2022-05-14 11:04:23,262 [INFO] Note: NumExpr detected 12 cores but "NUMEXPR_MAX_THREADS" not set, so enforcing safe limit of 8. [numexpr.utils::_init_num_threads]
2022-05-14 11:04:23,262 [INFO] NumExpr defaulting to 8 threads. [numexpr.utils::_init_num_threads]
Traceback (most recent call last):
  File "D:\AppData\Anaconda3\envs\hky39\Lib\site-packages\hikyuu\gui\HikyuuTDX.py", line 23, in <module>
    from hikyuu.gui.data.UseTdxImportToH5Thread import UseTdxImportToH5Thread
  File "D:\AppData\Anaconda3\envs\hky39\lib\site-packages\hikyuu\gui\data\UseTdxImportToH5Thread.py", line 29, in <module>
    from hikyuu.gui.data.ImportTdxToH5Task import ImportTdxToH5Task
  File "D:\AppData\Anaconda3\envs\hky39\lib\site-packages\hikyuu\gui\data\ImportTdxToH5Task.py", line 30, in <module>
    from hikyuu.data.tdx_to_h5 import tdx_import_data as h5_import_data
  File "D:\AppData\Anaconda3\envs\hky39\lib\site-packages\hikyuu\data\tdx_to_h5.py", line 32, in <module>
    import tables as tb
  File "D:\AppData\Anaconda3\envs\hky39\lib\site-packages\tables\__init__.py", line 45, in <module>
    from .utilsextension import get_hdf5_version as _get_hdf5_version
ImportError: DLL load failed while importing utilsextension: 找不到指定的模块。
Quit Hikyuu system!

几个月前 fasiondog 曾提示过用 Py38 尝试……

第三次尝试,采用 Python 3.8

顺利完成 hikyuu 和 TA_Lib 的安装:

(base) C:\Users\dc1y>conda create -n hky38 python=3.8

(base) C:\Users\dc1y>conda activate hky38

(hky38) C:\Users\dc1y>pip install hikyuu
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting hikyuu
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/da/6b/f6f963b84f3f3182dddb8796f69d7b71504f94509a95808b8c6b99f57c3a/hikyuu-1.2.3-cp38-none-win_amd64.whl (9.2 MB)
............ 省略 ............

(hky38) C:\Users\dc1y>pip install TA_Lib-0.4.24-cp38-cp38-win_amd64.whl
............ 省略 ............
Successfully installed TA-Lib-0.4.24

测试导入数据,从 HikyuuTDX、importdata 到直接运行 HikyuuTDX.py,出错的现象和信息与采用 Python 3.9 的上一次尝试完全一样:

(hky38) C:\Users\dc1y>HikyuuTDX.exe
............ 无法启动图形界面 ............

(hky38) C:\Users\dc1y>importdata.exe
Initialize hikyuu_1.2.3_202203061816_x64_release ...
............ 省略 ............
ImportError: DLL load failed while importing utilsextension: 找不到指定的模块。
Quit Hikyuu system!

(hky38) D:\AppData\Anaconda3\envs\hky38\Lib\site-packages\hikyuu\gui>python hikyuutdx.py
Initialize hikyuu_1.2.3_202203061816_x64_release ...
............ 省略 ............
ImportError: DLL load failed while importing utilsextension: 找不到指定的模块。
Quit Hikyuu system!

第四次尝试,采用 Python 3.7

hikyuu 和 TA_Lib 安装没问题:

(base) C:\Users\dc1y>conda create -n hky37 python=3.7

(base) C:\Users\dc1y>conda activate hky37

(hky37) C:\Users\dc1y>pip install hikyuu
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting hikyuu
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/61/fc/34aeeb12714d434f72b48454409ad83187f976efd90ec4a9ed7ee0e338d4/hikyuu-1.2.0-cp37-none-win_amd64.whl (9.0 MB)
............ 省略 ............

(hky37) C:\Users\dc1y>pip install TA_Lib-0.4.24-cp37-cp37m-win_amd64.whl
............ 省略 ............
Successfully installed TA-Lib-0.4.24

测试导入数据……

(hky37) C:\Users\dc1y>HikyuuTDX.exe

这一次终于启动了图形界面的数据导入工具 —— 在“存储设置”中指定的数据存放路径后,其余选项保持默认值,进入“执行导入”点击“手工执行导入”,然而……没有进度,并且无法退出(只能通过任务管理器强行关闭):
输入图片说明

控制台日志如下:

2022-05-14 11:43:26,517 [INFO] - 搜索通达信服务器 [UsePytdxImportToH5Thread::init_task]


2022-05-14 11:43:26,525 [DEBUG] - connecting to server : 180.153.18.172 on port :80 [PYTDX::connect]
2022-05-14 11:43:26,525 [DEBUG] - connecting to server : 202.108.253.130 on port :7709 [PYTDX::connect]
...
2022-05-14 11:43:26,547 [DEBUG] - connected! [PYTDX::connect]
2022-05-14 11:43:26,547 [DEBUG] - connected! [PYTDX::connect]
...
2022-05-14 11:43:26,578 [DEBUG] - 需要解压 [PYTDX::_call_api]
2022-05-14 11:43:26,578 [DEBUG] - connected! [PYTDX::connect]
2022-05-14 11:43:26,578 [DEBUG] - 需要解压 [PYTDX::_call_api]
2022-05-14 11:43:26,578 [DEBUG] - connected! [PYTDX::connect]
...
2022-05-14 11:43:26,625 [DEBUG] - 不需要解压 [PYTDX::_call_api]
2022-05-14 11:43:26,625 [DEBUG] - last ack time update to 1652499806.6254387 [PYTDX::wrapper]
2022-05-14 11:43:26,625 [DEBUG] - sending thread lock api call [PYTDX::call_api]
2022-05-14 11:43:26,625 [DEBUG] - 需要解压 [PYTDX::_call_api]
...
2022-05-14 11:43:26,641 [DEBUG] - disconnecting [PYTDX::disconnect]
2022-05-14 11:43:26,641 [DEBUG] - disconnected [PYTDX::disconnect]
2022-05-14 11:43:26,641 [DEBUG] - connecting to server : 183.57.72.22 on port :7709 [PYTDX::connect]
...
2022-05-14 11:43:27,533 [DEBUG] - connection expired [PYTDX::connect]
2022-05-14 11:43:27,533 [DEBUG] - connection expired [PYTDX::connect]
...
2022-05-14 11:43:28,205 [INFO] - 导入股票代码表 [UsePytdxImportToH5Thread::_run]
2022-05-14 11:43:29,455 [DEBUG] - connecting to server : 119.29.19.242 on port :7709 [PYTDX::connect]
...
2022-05-14 11:43:30,955 [DEBUG] - hit exception on req exception is 'gbk' codec can't decode byte 0xbb in position 7: incomplete multibyte sequence [PYTDX::wrapper]
...
2022-05-14 11:43:31,283 [INFO] - 深证新增股票数: 3045 [UsePytdxImportToH5Thread::_run]

至此,已暂时想不出其它办法,有劳诸位大神指点了。

评论 (10)

dc1y 创建了任务

感谢大神指点!安装 pytables 后,可以在 Python 3.9 上通过 importdata.exe 来导入数据了(图形界面的 HikyuuTDX.exe 挂了半个小时,进度条仍然没有动静)

用 importdata 可以导入数据了,但 GUI 数据导入工具始终无进度,数据存储位置中也未创建数据文件,不知是否与 hikyuu.ini 中的乱码有关?

输入图片说明

输入图片说明

没有关系。这个是pyqt5版本的问题,把spyder、pyqt5卸载,用 pip 重装 pyqt5 试下,不行我也没办法,完全不知道你们的环境,我这从没碰到过

试过了,没有效果——暂时先用 importdata 吧

fasiondog 添加了
 
FAQ
标签

为什么不支持3.10呢?

打包脚本没处理好双位的小版本,已经改了,暂时没发新版本

目前尝试出来打开hikyuutdx有三个条件:1)conda install python=3.8; 2)本地安装好ta lib, 下载whl后shift 右键 pip install 【talib文件名】.whl ;3)pip install pyqt5和pyqt5-tools

然后 在hikyuutdx.exe运行过程中我也遇到了 其他帖子中类似的问题 例如tdqm 的fq.write对象出问题 none type没有write 属性之类的,这个怀疑是tdqm的版本问题,从而导致进度条不动;以及 最后遇到[ERROR] - Exception: All process is finished, but some tasks are running!这个bug.

但是在完成上述三个条件后,使用importdata没有问题,顺利完成导入

import progress: 96% - 日线数据 - 已耗时 12.87 分钟
import progress: 97% - 日线数据 - 已耗时 13.29 分钟
import progress: 98% - 日线数据 - 已耗时 13.77 分钟
import progress: 99% - 日线数据 - 已耗时 14.21 分钟
2023-12-25 22:05:29,118 [INFO] 导入 SZ DAY 记录数: 9292063 [ImportPytdxToH5::call]
import progress: 100% - 日线数据 - 已耗时 14.71 分钟
2023-12-25 22:05:29,119 [INFO] 导入完毕 [UsePytdxImportToH5Thread::run]

导入完毕, 共耗时 14.71 分钟

=========================================================
导入详情:
导入 BJ DAY 记录数:113894
导入 SH DAY 记录数:7893264
导入 SZ DAY 记录数:9292063

Quit Hikyuu system!

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(4)
3859 fasiondog 1578914213
C++
1
https://gitee.com/fasiondog/hikyuu.git
git@gitee.com:fasiondog/hikyuu.git
fasiondog
hikyuu
hikyuu

搜索帮助