我在写爬虫时,上一刻还用着requests,但是下一刻它就报了如下错误,我一开始以为是我网络问题,但我检查一下,我能正常上网,就把这个给过滤了,且在 Pycharm中导包并无错误。于是,我开始在网上找资料但是仍然没有找到答案。后来,我就重新下载Python3.6.6了,不想折腾。等我去做其它事回来,差点就重新安装了,但我又不甘心,于是又在终端输入了如下命令。 于是还是报同样的错:
>> import requests
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "E:\Python36\lib\site-packages\requests\__init__.py", line 95, in <module>
from urllib3.contrib import pyopenssl
File "E:\Python36\lib\site-packages\urllib3\contrib\pyopenssl.py", line 46, in <module>
import OpenSSL.SSL
File "E:\Python36\lib\site-packages\OpenSSL\__init__.py", line 8, in <module>
from OpenSSL import crypto, SSL
File "E:\Python36\lib\site-packages\OpenSSL\crypto.py", line 16, in <module>
from OpenSSL._util import (
File "E:\Python36\lib\site-packages\OpenSSL\_util.py", line 6, in <module>
from cryptography.hazmat.bindings.openssl.binding import Binding
File "E:\Python36\lib\site-packages\cryptography\hazmat\bindings\openssl\binding.py", line 156, in <module>
Binding.init_static_locks()
File "E:\Python36\lib\site-packages\cryptography\hazmat\bindings\openssl\binding.py", line 137, in init_static_locks
cls._ensure_ffi_initialized()
File "E:\Python36\lib\site-packages\cryptography\hazmat\bindings\openssl\binding.py", line 124, in _ensure_ffi_initialized
cls.lib = build_conditional_library(lib, CONDITIONAL_NAMES)
File "E:\Python36\lib\site-packages\cryptography\hazmat\bindings\openssl\binding.py", line 84, in build_conditional_library
if not getattr(lib, condition):
AttributeError: cffi library '_openssl' has no function, constant or global variable named 'Cryptography_HAS_CMS'
于是,我就在想,找问题时,我们往往是从最下面找,那么解决这个问题,我能不能从上面找呢。
尝试了一下:
果然这导包是没问题了:
再次去获取数据 :
可以看到,成功了,我再回到我的Pycharm中再去验证一下: