降级pip在virtualenv上失败了

时间:2016-12-05 18:25:42

标签: python python-2.7 virtualenv

我正在使用python2.7 virtualenv(15.0.1版)在Ubuntu 16.04上工作。 当我创建一个新的virtualenv时,它会自动安装pip(版本8.1.1)。 我想将pip降级到版本8.0.2,但是在运行时

pip install pip==8.0.2

我收到以下错误:

Exception:
Traceback (most recent call last):
  File "/mnt/code/.venvs/bla/local/lib/python2.7/site-packages/pip/basecommand.py", line 209, in main
    status = self.run(options, args)
  File "/mnt/code/.venvs/bla/local/lib/python2.7/site-packages/pip/commands/install.py", line 328, in run
    wb.build(autobuilding=True)
  File "/mnt/code/.venvs/bla/local/lib/python2.7/site-packages/pip/wheel.py", line 748, in build
    self.requirement_set.prepare_files(self.finder)
  File "/mnt/code/.venvs/bla/local/lib/python2.7/site-packages/pip/req/req_set.py", line 360, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/mnt/code/.venvs/bla/local/lib/python2.7/site-packages/pip/req/req_set.py", line 448, in _prepare_file
    req_to_install, finder)
  File "/mnt/code/.venvs/bla/local/lib/python2.7/site-packages/pip/req/req_set.py", line 387, in _check_skip_installed
    req_to_install.check_if_exists()
  File "/mnt/code/.venvs/bla/local/lib/python2.7/site-packages/pip/req/req_install.py", line 1011, in check_if_exists
    self.req.project_name
AttributeError: 'Requirement' object has no attribute 'project_name'

但是,在virtualenv之外运行它。

有没有人知道这个问题的解决方案?

我想降级点数版本的原因是因为新版本在搜索包时将点(.)转换为短划线(-),并且它找不到我需要的一些包

2 个答案:

答案 0 :(得分:0)

看看这个discussion

答案 1 :(得分:0)

O.K,所以我在pip 8.1.1中看到,在文件req_install.py中,当req有一个名为" name"的属性时,check_if_exists函数尝试访问self.req.project_name。而不是" project_name"。在点子8.1.2中,这被改为" name"。 所以我做的是使用pip install pip --upgrade升级到pip 8.1.2 然后使用pip install pip==8.0.2

降级到8.0.2