我正在尝试在我的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
谢谢!!!
答案 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
,无法找到时会爆炸。