我正在使用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之外运行它。
有没有人知道这个问题的解决方案?
我想降级点数版本的原因是因为新版本在搜索包时将点(.)
转换为短划线(-)
,并且它找不到我需要的一些包
答案 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