跑完之后
pip install requests[security]
运行任何pip命令都会输出以下错误。我试过apt-get删除并重新安装python-pip以及python-pyopenssl。想知道是否有人有建议或遇到过这个问题?我无法升级python或Debian,并希望再次使用pip。
Debian 6.0.10
Python 2.6.6
python-pip 1.5.6
$ pip --version
Traceback (most recent call last):
File "/usr/local/bin/pip", line 9, in <module>
load_entry_point('pip==1.5.6', 'console_scripts', 'pip')()
File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 305, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 2244, in load_entry_point
return ep.load()
File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 1954, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
File "/usr/local/lib/python2.6/dist-packages/pip-1.5.6-py2.6.egg/pip/__init__.py", line 11, in <module>
from pip.vcs import git, mercurial, subversion, bazaar # noqa
File "/usr/local/lib/python2.6/dist-packages/pip-1.5.6-py2.6.egg/pip/vcs/mercurial.py", line 9, in <module>
from pip.download import path_to_url
File "/usr/local/lib/python2.6/dist-packages/pip-1.5.6-py2.6.egg/pip/download.py", line 22, in <module>
from pip._vendor import requests, six
File "/usr/local/lib/python2.6/dist-packages/pip-1.5.6-py2.6.egg/pip/_vendor/requests/__init__.py", line 53, in <module>
from .packages.urllib3.contrib import pyopenssl
File "/usr/local/lib/python2.6/dist-packages/pip-1.5.6-py2.6.egg/pip/_vendor/requests/packages/urllib3/contrib/pyopenssl.py", line 49, in <module>
from ndg.httpsclient.ssl_peer_verification import SUBJ_ALT_NAME_SUPPORT
File "/usr/local/lib/python2.6/dist-packages/ndg/httpsclient/ssl_peer_verification.py", line 14, in <module>
from ndg.httpsclient.subj_alt_name import SubjectAltName
File "/usr/local/lib/python2.6/dist-packages/ndg/httpsclient/subj_alt_name.py", line 102, in <module>
class AnotherName(univ.Sequence):
File "/usr/local/lib/python2.6/dist-packages/ndg/httpsclient/subj_alt_name.py", line 105, in AnotherName
namedtype.NamedType('value', univ.Any().subtype(
AttributeError: 'module' object has no attribute 'Any'
答案 0 :(得分:1)
不幸的是sudo apt-get autoremove
并没有神奇地删除。当然,我也尝试过标准pip uninstall ndg-httpsclient
而没有运气。
最后,我不得不进入python程序目录并强制删除它。
$ cd usr/local/lib/python2.7/dist-packages
$ sudo rm -rf ndg_httpsclient-0.3.3-py2.7.egg-info
$ sudo rm -rf ndg_httpsclient-0.3.3-py2.7-nspkg.pth
$ sudo rm -rf ndg
答案 1 :(得分:0)
只需执行以下操作即可解决此问题: sudo apt-get autoremove
答案 2 :(得分:0)
请在此处参考此错误:https://github.com/cedadev/ndg_httpsclient/issues/5
我怀疑问题是Ubuntu上的pip正在使用ndg_httpsclient,而当前的ndg_httpsclient与 旧pyasn1,所以在安装过程中pip断裂。
无论如何,可供选择的有效版本的pyasn1是:0.0.9a0, 0.0.10a0,0.0.11a0,0.0.12a0,0.0.13a0,0.0.13b0,0.0.13,0.1.1,0.1.2,0.1.3,0.1.4,0.1.5,0.1.6,0.1。 7,0.1.8,0.1.9
我找到了解决问题的半合理解决方法。
然而0.0.13并没有安装在Python 3上,所以我认为最低限度 应该至少0.1.1。
但是我看到密码学需要pyasn1&gt; = 0.1.8,所以它是 可能大多数人很快就会使用它。