请选择 进入手机版 | 继续访问电脑版

登录  | 立即注册

游客您好!登录后享受更多精彩

QQ登录

只需一步,快速开始

查看: 1313|回复: 9

VNPY3.0 运行时报错, 找不到vnklineservice.dll 问题

[复制链接]

1

主题

2

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2021-12-29 17:16:09 | 显示全部楼层 |阅读模式
我按照文档操作 , 使用的 python 3.9 /3.8 ( 都试了 ) ,pycharm +  anaconda  环境
ta-ai  ,  pyqt 5 都安装了  ,  最后启动时  , 刚弹出 图形界面 , 就报错了



Traceback (most recent call last):
  File "D:\PycharmProjects\VNTrader(CTP6.6.1)\module_kline.py", line 42, in run
    globalvar.vk = MyKlineService(self.signal_getkline)
  File "D:\PycharmProjects\VNTrader(CTP6.6.1)\module_kline.py", line 12, in __init__
    super().__init__(_signal)
  File "D:\PycharmProjects\VNTrader(CTP6.6.1)\vnklineservice.py", line 17, in __init__
    self.vnkline = WinDLL("D:\\PycharmProjects\\VNTrader(CTP6.6.1)\\vnklineservice.dll")
  File "C:\Users\Cloud\anaconda3\envs\VNTrader(CTP6.6.1)_3.9\lib\ctypes\__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'D:\PycharmProjects\VNTrader(CTP6.6.1)\vnklineservice.dll' (or one of its dependencies). Try using the full path with constructor syntax.


请问 有人知道 大概是什么问题 吗 ?  谢谢
阿里旺旺图片20211229165457.jpg
回复

使用道具 举报

1

主题

2

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2021-12-29 17:42:49 | 显示全部楼层
这个路径下'D:\PycharmProjects\VNTrader(CTP6.6.1)\vnklineservice.dll'    的文件 是存在的
回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-1-15 17:32:27 | 显示全部楼层
我的python程序在使用ctypes库调用C++程序创建的dll时,会产生如下错误:

OSError: [WinError 126] 找不到指定的模块

引起此类问题的主要原因:


你的DLL动态库依赖于其他其他DLL动态库无法被系统找到。在Python里面载入dll时,如果这个dll还依赖于其它的dll的话,这些相关的dll也得要能被Python的进程访问到。

出现上面问题原因是,增值服务(K线从服务器获取)vnklineservice.dll 用了SSL,而这SSL库用了VC2013开发的,所以只要安装了下载Visual C++ 2013 Redistributable  64位运行时库即可解决。

解决方法:

把相关的DLL 动态库也导进来,这样问题基本就能解决。如果无法确定相关DLL 动态库,引起这类问题的原因很可能是由于你的目标主机没有安装相关的C++环境。
解决方法:下载Visual C++ 2013 Redistributable运行库,64位版本下载地址为 https://www.microsoft.com/zh-cn/ ... ation.aspx?id=48145
回复

使用道具 举报

36

主题

55

帖子

389

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
389
发表于 2022-1-16 15:37:30 | 显示全部楼层
我的python程序在使用ctypes库调用C++程序创建的dll时,会产生如下错误:

OSError: [WinError 126] 找不到指定的模块

引起此类问题的主要原因:


你的DLL动态库依赖于其他其他DLL动态库无法被系统找到。在Python里面载入dll时,如果这个dll还依赖于其它的dll的话,这些相关的dll也得要能被Python的进程访问到。



解决方法:

解决方式是把相关的DLL 动态库也导进来,这样问题基本就能解决。如果无法确定相关DLL 动态库,引起这类问题的原因很可能是由于你的目标主机没有安装相关的C++环境。解决方法:下载Visual C++ Redistributable运行库,64位版本下载地址为 https://www.microsoft.com/zh-cn/ ... ation.aspx?id=48145
回复

使用道具 举报

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2022-2-7 23:00:57 | 显示全部楼层
月下夜想曲 发表于 2021-12-29 17:42
这个路径下'D:\PycharmProjects\VNTrader(CTP6.6.1)\vnklineservice.dll'    的文件 是存在的

同样遇到这个问题。我是从Gittee上下载的源码。
目前还没解决
回复

使用道具 举报

0

主题

1

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2022-2-27 17:17:14 | 显示全部楼层
遇到同样的问题,错误信息为:

set start event failed,errno:6
InitTD
InitTD
--->>> tcp://180.168.146.187:10202
--->>> tcp://180.168.146.187:10202
--->>> tcp://180.168.146.187:10202
--->>> tcp://180.168.146.187:10211
--->>> tcp://58.33.41.185:42213
--->>> tcp://58.33.41.185:42213
CTDSpi::ReqAuthenticate
CTDSpi::ReqUserLogin
连接行情服务器成功OnFrontConnected
连接交易服务器成功OnFrontConnected
行情登录成功OnRspUserLogin
9999,188075,simnow_client_test,0000000000000000,
Traceback (most recent call last):
  File "D:/66.vnpy/vnpy-master/VNPY3.1/VNPY3.1/VNPY(CTP6.6.1)/VNTrader.py", line 116, in <module>
    main()
  File "D:/66.vnpy/vnpy-master/VNPY3.1/VNPY3.1/VNPY(CTP6.6.1)/VNTrader.py", line 106, in main
    globalvar.vk = module_kline.MyKlineService(globalvar.ui.callback_kline)
  File "D:\66.vnpy\vnpy-master\VNPY3.1\VNPY3.1\VNPY(CTP6.6.1)\module_kline.py", line 12, in __init__
    super().__init__(_signal)
  File "D:\66.vnpy\vnpy-master\VNPY3.1\VNPY3.1\VNPY(CTP6.6.1)\vnklineservice.py", line 13, in __init__
    self.vnkline = CDLL(currpath + '\\vnklineservice.dll')
  File "D:\55installation\anaconda\lib\ctypes\__init__.py", line 364, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 182] 操作系统无法运行 %1。
交易登录成功OnRspUserLogin

现状:
1 Python版本:3.7.10
2 vnpy版本: 3.1
3 “vnpy-master\VNPY3.1\VNPY3.1\VNPY(CTP6.6.1)\vnklineservice.dll”文件存在
4 安装了“vnpy-master\VNPY3.1\VNPY3.1\vc2013运行时库”下的vcredist_x64.exe,并重启了笔记本
5 将源码中的 os.path.dirname(__file__) 改为 os.path.dirname('__file__')

又遇到相同情况的吗?
回复

使用道具 举报

0

主题

3

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2022-3-12 12:23:35 | 显示全部楼层
加一,我也遇到这个情况,按照管理员给的地址下了vc运行时库,安装后,重新运行vnpy还是显示找不到上面哪个ddl,窗口显示未响应。
回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-3-15 15:42:35 | 显示全部楼层
admin 提供的是2015版本的运行库,要用2013版本的就可以了。
如果大家2015版本不行就换2013的运行库试试。
回复

使用道具 举报

36

主题

55

帖子

389

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
389
发表于 2022-4-16 18:50:07 | 显示全部楼层
vnklineservice.dll是我们官方提供的M1周期K线调用接口,属于独立于CTP以外的,这个模块是可选的,作为一个完整的软件也是需要的,如果你的CTP接口一直不断线,也可以不用这个接口,这个接口是基于SSL,刚好依赖vc2013运行时库,所以需要安装这个库,开源压缩包已经包含了,将来会升级到新的VC版本,就不用单独安装运行时库了。
回复

使用道具 举报

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2022-5-7 21:51:15 | 显示全部楼层
上面的都试遍了还是找不到指定模块,唉,醉了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|VNPY官方Python开源量化社区 ( 沪ICP备17025576号-16 )

GMT+8, 2022-8-8 14:30 , Processed in 0.072161 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表