Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 名称错误:名称';协议';没有定义_Python_Python 2.7_Biopython - Fatal编程技术网

Python 名称错误:名称';协议';没有定义

Python 名称错误:名称';协议';没有定义,python,python-2.7,biopython,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

我试图在我的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
来自Bio导入SeqIO的
>>
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/Library/Python/2.7/site packages/Bio/SeqIO/__init___.py”,第317行,在
从Bio._py3k导入基串
文件“/Library/Python/2.7/site-packages/Bio/_-py3k/_-init__.py”,第235行,在
从urllib2导入urlopen,请求
文件“/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第94行,在
导入httplib
文件“/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py”,第1230行,在
导入ssl
文件“/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py”,第133行,在
协议\u SSLv23=协议\u TLS
NameError:未定义名称“协议\u TLS”
谢谢你

奇怪的是,您的错误似乎出现在
ssl
模块本身,它应该知道这个常量;我猜为OpenSSL提供C接口的
\uSSL
模块有严重的问题。我知道Mac和OpenSSL一直是CPython开发人员头疼的问题,但我不能给你比这更多的东西


尝试执行
import\u ssl
并确保
\u ssl.PROTOCOL\u TLS
存在并且
\u ssl
来自一个正常的文件系统位置(在
ssl
模块本身附近);如果没有,则说明您的
\u ssl
模块有问题。您的
sys.path
中可能包含了2.7.13之前的
\u ssl
模块,即使是在加载2.7.13之后的
ssl
模块时,该模块也会在
\u ssl
中找到
协议
,当找不到时会爆炸。

非常感谢!!我在bashrc文件中设置了一大堆不必要的东西。我删除了以下内容,它起了作用->#export PATH=“/usr/local/bin:$PATH”#export PATH=“/usr/local/opt/hdf5@1.8.18/bin:$PATH“是
/usr/local/lib/python2.7/lib dynload/\u ssl。所以
ssl模块的路径是错误的?@kinORnirvana:看起来不错(有多个可能的路径,但看起来像是典型的路径)。问题是确定ssl是否有它应该有的常数。我对这项调查太厌倦了,通过编辑
/usr/lib/python2.7/ssl.py
(添加
协议\u TLS=2
行)完成了调查。在那之后,(运行pip的)问题就解决了(但我不确定我没有弄坏什么东西)。