0

在更新 virtualenv 的过程中,我似乎在 ssl 库或其他东西中弄出了问题。以前在两个 virtualenv 中的任何一个中工作的代码现在只能在一个中工作;在我更改的代码中,下面显示的代码会生成后续错误。

我没有看到看起来相关或与我在许多类似问题案例中发现的 virtualenvs 之间存在任何明显差异。任何人都可以提出任何其他调查路线,或者有什么明显的跳出吗?

在这两个环境中,我们都有

$ python --version
Python 2.7.6

这是 SSL 错误的高级调用requests.get()和要点。再往下,我pip freeze在两个环境中包含一个差异。

response = requests.get(
    query,
    auth=(self.user, self.token),
    verify=True,
    cert=self._requests_ca_bundle
    )

产生错误:

  File "/home/security/.virtualenvs/nimbus/local/lib/python2.7/site-packages/nimbus/gitter.py", line 338, in call_api
    cert=self._requests_ca_bundle
  File "/home/security/.virtualenvs/nimbus/local/lib/python2.7/site-packages/requests/api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
...
  File "/home/security/.virtualenvs/nimbus/local/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 421, in load_cert_chain
    self._ctx.use_privatekey_file(keyfile or certfile)
  File "/home/security/.virtualenvs/nimbus/local/lib/python2.7/site-packages/OpenSSL/SSL.py", line 798, in use_privatekey_file
    self._raise_passphrase_exception()
...
OpenSSL.SSL.Error: [('PEM routines', 'PEM_read_bio', 'no start line'), ('SSL routines', 'SSL_CTX_use_PrivateKey_file', 'PEM lib’)]

requests.get()这是每个环境中通过参数发送到的证书(来自证书)cert=self._requests_ca_bundle;差异是空的。

$ wc /tmp/*.cacert*
  5246  10849 321421 /tmp/b.cacert.pem
  5245  10849 321421 /tmp/s.cacert.pem

pip freeze这是两个 virtualenvs中输出的差异。

This virtualenv works.              This virtualenv doesn't.

appdirs==1.4.3                    <
asn1crypto==0.22.0                  asn1crypto==0.22.0
                                  > awscli==1.11.66
                                  > botocore==1.5.29
certifi==2017.4.17                  certifi==2017.4.17
cffi==1.10.0                        cffi==1.10.0
chardet==3.0.4                      chardet==3.0.4
                                  > colorama==0.3.7
cryptography==1.8.1                 cryptography==1.8.1
cssselect==1.0.1                    cssselect==1.0.1
cssutils==1.0.2                     cssutils==1.0.2
                                  > docutils==0.13.1
enum34==1.1.6                       enum34==1.1.6
                                  > futures==3.0.5
idna==2.5                           idna==2.5
ipaddress==1.0.18                   ipaddress==1.0.18
                                  > jmespath==0.9.2
lxml==3.8.0                         lxml==3.8.0
Mako==1.0.6                         Mako==1.0.6
MarkupSafe==1.0                     MarkupSafe==1.0
ndg-httpsclient==0.4.2              ndg-httpsclient==0.4.2
nimbus==1.1.7                       nimbus==1.1.7
packaging==16.8                     packaging==16.8
premailer==3.0.1                    premailer==3.0.1
pyasn1==0.2.3                       pyasn1==0.2.3
pycparser==2.17                     pycparser==2.17
pyOpenSSL==17.0.0                   pyOpenSSL==17.0.0
pyparsing==2.2.0                    pyparsing==2.2.0
                                  > python-dateutil==2.6.0
                                  > PyYAML==3.12
requests==2.17.3                    requests==2.17.3
                                  > rsa==3.4.2
                                  > s3transfer==0.1.10
sh==1.12.14                         sh==1.12.14
six==1.10.0                         six==1.10.0
urllib3==1.21.1                     urllib3==1.21.1
4

0 回答 0