Requests/openssl:TypeError:ctype的初始值设定项必须是指向相同类型的指针,而不是cdata

Requests/openssl:TypeError:ctype的初始值设定项必须是指向相同类型的指针,而不是cdata,openssl,python-requests,Openssl,Python Requests,我对其他地方找不到解决方案的请求有问题 我正在向google发送一个post请求,其中包含一些包含客户端id和令牌信息的数据(只是python字符串),但偶尔会出现以下错误: TypeError: initializer for ctype 'int(*)(int, X509_STORE_CTX *)' must be a pointer to same type, not cdata 'int(*)(int, X509_STORE_CTX *)' 它似乎每隔一段时间就工作一次,然后有时会抛出

我对其他地方找不到解决方案的请求有问题

我正在向google发送一个post请求,其中包含一些包含客户端id和令牌信息的数据(只是python字符串),但偶尔会出现以下错误:

TypeError: initializer for ctype 'int(*)(int, X509_STORE_CTX *)' must be a pointer to same type, not cdata 'int(*)(int, X509_STORE_CTX *)'
它似乎每隔一段时间就工作一次,然后有时会抛出这个错误。我尝试将所有数据/url编码为“utf-8”,但这似乎没有多大帮助,因为我有时仍然会遇到错误。如果我打开verify=False,它会工作,但我想保持打开状态。以下是完整的跟踪:

url = 'https://accounts.google.com/...'
data = {'refresh_token': ...,
                'client_id': …,
                'client_secret': ...,
                'grant_type': 'refresh_token',
                }

  File "/path/to/file/file.py", line 124, in _my_function.py
    response = requests.post(url, data=data)
  File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 94, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 49, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 457, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 569, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 362, in send
    timeout=timeout
  File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.py", line 516, in urlopen
    body=body, headers=headers)
  File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.py", line 304, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.py", line 722, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connection.py", line 229, in connect
    ssl_version=resolved_ssl_version)
  File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/contrib/pyopenssl.py", line 255, in ssl_wrap_socket
    ctx.set_verify(_openssl_verify[cert_reqs], _verify_callback)
  File "/usr/local/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 550, in set_verify
    :param depth: An integer specifying the verify depth
TypeError: initializer for ctype 'int(*)(int, X509_STORE_CTX *)' must be a pointer to same type, not cdata 'int(*)(int, X509_STORE_CTX *)'
使用请求2.4.2和pyopenssl 0.14。如果你有什么好主意,谢谢


编辑:将pyopenssl降级回0.13会使错误消失。

我看到同样的问题,它刚刚开始发生。我正在运行requests 2.4.3和pyopenssl 0.14,当我将Python请求与mod_wsgi/apache一起使用时,我发现了这个问题。。。您找到解决方案了吗?让我们继续链….)@弗雷德里克:你找到解决办法了吗?这有点尴尬,但我确实找到了,而且我完全不记得我是如何解决的:-)我一次尝试了太多东西,很高兴看到它消失。