安装请求后Pip损坏[安全]

时间:2015-03-17 21:07:12

标签: python debian pip

跑完之后 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'

3 个答案:

答案 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,所以它是   可能大多数人很快就会使用它。