NameError:name' PROTOCOL_TLS'没有定义

时间:2018-05-24 01:54:41

标签: python python-2.7 biopython

我正在尝试在我的Mac终端上导入Biopython模块但是它抛出了以下错误。如果有人可以帮我解决这个问题,将会非常有帮助。

>>> from Bio import SeqIO
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/Bio/SeqIO/__init__.py", line 317, in <module>
    from Bio._py3k import basestring
  File "/Library/Python/2.7/site-packages/Bio/_py3k/__init__.py", line 235, in <module>
    from urllib2 import urlopen, Request
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 94, in <module>
    import httplib
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1230, in <module>
    import ssl
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 133, in <module>
    PROTOCOL_SSLv23 = PROTOCOL_TLS
NameError: name 'PROTOCOL_TLS' is not defined

谢谢!!!

1 个答案:

答案 0 :(得分:1)

PROTOCOL_TLS was added in 2.7.13

奇怪的是,看起来你的错误出现在ssl模块中,应该知道这个常量;我猜测提供C接口到OpenSSL的_ssl模块有些严重错误。我知道Mac和OpenSSL一直是CPython开发人员的头疼,但我不能给你更多的东西。

尝试执行import _ssl并确保_ssl.PROTOCOL_TLS存在且_ssl来自一个合理的文件系统位置(ssl模块本身附近的某处);如果没有,您的_ssl模块就成了问题。即使在加载后的2.7.13 _ssl模块时,您有可能以某种方式包含在sys.path中的2.7.13之前ssl模块。 PROTOCOL_TLS中的_ssl,无法找到时会爆炸。