keli/ctp-python

windows系统安装成功后import 报错

yangyueguang opened this issue · 7 comments

windows 11 系统下,我尝试过python3.8和python3.10两个版本使用pip install ctp-python==6.6.9
安装成功之后运行如下代码
import ctp
然后报错如下:
Traceback (most recent call last):
File "C:\Users\Aber\Desktop\stock-main\strategy\study.py", line 1, in
import ctp
File "C:\Users\Aber\PycharmProjects\pythonProject\venv\lib\site-packages\ctp.py", line 18, in
import _ctp
ImportError: DLL load failed while importing _ctp: 找不到指定的模块。

不知道你的python是怎么装的,windows 11 64位的话,用minicoda3没问题

winget install miniconda3
conda init
conda create --name ctp python=3.11
conda activate ctp
conda install -c conda-forge libiconv
pip install ctp-python

你是对的,通过conda安装好libiconv之后这个问题就算是解决了。
然后编译和导入都没有问题了。✅
然后发现连不上,报错4097 网络读失败 OnSessionDisconnected。网上说是ctp版本不对,我下载了上期技术发行的所有版本进行编译测试,发现还是报这样的错误。我使用你发布的即pip install ctp-python也是报这样的错误。

你是对的,通过conda安装好libiconv之后这个问题就算是解决了。 然后编译和导入都没有问题了。✅ 然后发现连不上,报错4097 网络读失败 OnSessionDisconnected。网上说是ctp版本不对,我下载了上期技术发行的所有版本进行编译测试,发现还是报这样的错误。我使用你发布的即pip install ctp-python也是报这样的错误。

服务器只有开盘时间才是开着的,盘后都关了

<ctp.CThostFtdcRspInfoField; thisown: 0, ErrorID: 4040, ErrorMsg: "CTP:API Front shake hand err: decode err"> 0
Decrypt handshake data failed
CThostFtdcUserApiImplBase::OnSessionDisconnected[0000018A6243DA18][-1181679610][ 4097]
多谢指点!我等到开盘时间验证了,报上述错误可能不是开盘的原因,有可能是版本不匹配的原因。我下载pip install ctp-python打印版本是v6.6.9_CP_20220809_20220809 可能跟simnow或者生产环境的不匹配。不知道哪个版本匹配呢?pip搜索不到其他的版本了

现在找到原因了,换成官方的6.7.0那个版本的编译,然后一切就好了。多谢前辈指点!✅

<ctp.CThostFtdcRspInfoField; thisown: 0, ErrorID: 4040, ErrorMsg: "CTP:API Front shake hand err: decode err"> 0 Decrypt handshake data failed CThostFtdcUserApiImplBase::OnSessionDisconnected[0000018A6243DA18][-1181679610][ 4097] 多谢指点!我等到开盘时间验证了,报上述错误可能不是开盘的原因,有可能是版本不匹配的原因。我下载pip install ctp-python打印版本是v6.6.9_CP_20220809_20220809 可能跟simnow或者生产环境的不匹配。不知道哪个版本匹配呢?pip搜索不到其他的版本了

刚看了一下还真是,可能是在给windows打包的时候出错了,所以打包进去了测评版本,我回头修复一下。感谢反馈!

OK修复了,先pip uninstall ctp-python再重新装一遍就能得到正确的6.6.9了