在使用天勤量化之前,默认您已经知晓并同意以下免责条款,如果不同意请立即停止使用:https://www.shinnytech.com/blog/disclaimer/
Traceback (most recent call last):
File “C:\Python39\lib\site-packages\urllib3\connectionpool.py”, line 703, in urlopen
httplib_response = self._make_request(
File “C:\Python39\lib\site-packages\urllib3\connectionpool.py”, line 386, in _make_request
self._validate_conn(conn)
File “C:\Python39\lib\site-packages\urllib3\connectionpool.py”, line 1040, in _validate_conn
conn.connect()
File “C:\Python39\lib\site-packages\urllib3\connection.py”, line 414, in connect
self.sock = ssl_wrap_socket(
File “C:\Python39\lib\site-packages\urllib3\util\ssl_.py”, line 449, in ssl_wrap_socket
ssl_sock = _ssl_wrap_socket_impl(
File “C:\Python39\lib\site-packages\urllib3\util\ssl_.py”, line 493, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
File “C:\Python39\lib\ssl.py”, line 500, in wrap_socket
return self.sslsocket_class._create(
File “C:\Python39\lib\ssl.py”, line 1040, in _create
self.do_handshake()
File “C:\Python39\lib\ssl.py”, line 1309, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “C:\Python39\lib\site-packages\requests\adapters.py”, line 489, in send
resp = conn.urlopen(
File “C:\Python39\lib\site-packages\urllib3\connectionpool.py”, line 785, in urlopen
retries = retries.increment(
File “C:\Python39\lib\site-packages\urllib3\util\retry.py”, line 592, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host=’auth.shinnytech.com’, port=443): Max retries exceeded with url: /auth/realms/shinnytech/protocol/openid-connect/token (Caused by SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)’)))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “c:\Users\fr6q\Desktop\py\tq\Stock\aaa.py”, line 63, in <module>
api = TqApi(auth=TqAuth(‘account’, ‘password’))
File “C:\Python39\lib\site-packages\tqsdk\api.py”, line 284, in __init__
self._setup_connection() # 初始化通讯连接
File “C:\Python39\lib\site-packages\tqsdk\api.py”, line 3115, in _setup_connection
self._auth.login() # tqwebhelper 有可能会设置 self._auth
File “C:\Python39\lib\site-packages\tqsdk\auth.py”, line 62, in login
self._access_token, self._refresh_token = self._request_token({
File “C:\Python39\lib\site-packages\tqsdk\auth.py”, line 77, in _request_token
response = requests.post(url=url, headers=self._base_headers, data=data, timeout=30)
File “C:\Python39\lib\site-packages\requests\api.py”, line 115, in post
return request(“post”, url, data=data, json=json, **kwargs)
File “C:\Python39\lib\site-packages\requests\api.py”, line 59, in request
return session.request(method=method, url=url, **kwargs)
File “C:\Python39\lib\site-packages\requests\sessions.py”, line 587, in request
resp = self.send(prep, **send_kwargs)
File “C:\Python39\lib\site-packages\requests\sessions.py”, line 701, in send
r = adapter.send(request, **kwargs)
File “C:\Python39\lib\site-packages\requests\adapters.py”, line 563, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host=’auth.shinnytech.com’, port=443): Max retries exceeded with url: /auth/realms/shinnytech/protocol/openid-connect/token (Caused by SSLError(SSLCertVerificationError(1,
‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)’)))
Task was destroyed but it is pending!
task: <Task pending name=’Task-2′ coro=<TqApi._notify_watcher() running at C:\Python39\lib\site-packages\tqsdk\api.py:3599> cb=[TqBaseApi._on_task_done()]>
Task was destroyed but it is pending!
task: <Task pending name=’Task-1′ coro=<TqBaseApi._windows_patch() running at C:\Python39\lib\site-packages\tqsdk\baseApi.py:116> cb=[TqBaseApi._on_task_done()]>
sys:1: RuntimeWarning: coroutine ‘TqApi._notify_watcher’ was never awaited
sys:1: RuntimeWarning: coroutine ‘TqBaseApi._windows_patch’ was never awaited
一般是调用api结束但是没有正常用api.close()关闭会报异常,异常不是bug哈不影响正常使用
异常后就会直接退出了不会重连,为什么有这个错可以看看代码是否在结束后没有正确的关闭api
感觉你们这个设计有问题,一般用户会在交易时间以外的时间里退出程序,但是那个时间段会一直被api.wait_update()给block住的,所以基本没有机会可以调用到api.close(),从而导致只能手动强制的停止程序。
我现在跑的代码如下:
api = TqApi(auth=TqAuth(‘aa’, ‘aa’))
klines = api.get_kline_serial(‘SHFE.rb2210’, 60*5)
print(klines[‘close’][-1])
api.close()
就一直报这个错。
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)
看这个报错应该是网络环境比如说有代理,有内网环境等导致的,可以查一霞
wait_update有一个参数是deadline,你可以等待一段时间后就直接跳过,默认是无线等待哈。比如
wait = time.time()+5
api.wait_update(deadline = wait)
那要多久之后才可以再次链接呢,我是昨晚尝试后有了这个错误,等到了今天早上依然还是这个错。谢谢!