无法再使用pip安装旧版本

时间:2014-01-27 16:59:58

标签: python pip

我正在使用pip 1.5.1直到今天仍然工作正常。

现在,我正在尝试在一个新的virtualenv中安装requirements.txt,对于许多软件包,它无法再为大多数软件包找到特定的旧版本。

$ pip install django-endless-pagination==1.1 
Downloading/unpacking django-endless-pagination==1.1
  Could not find a version that satisfies the requirement django-endless-pagination==1.1 (from versions: 2.0)
  Some externally hosted files were ignored (use --allow-external to allow).
Cleaning up...
No distributions matching the version for django-endless-pagination==1.1

我需要做些什么才能让它再次发挥作用?升级我的应用程序以使用其所有软件包的所有最新版本是不可能的。

更新: 这在pip 1.4.1中工作正常。它是新版本的pip导致它失败。

3 个答案:

答案 0 :(得分:4)

来自PIP 1.5 changelog

  

BACKWARD INCOMPATIBLE

     

pip不再会在默认情况下刮掉不安全的外部URL,也不会安装外部托管的文件   默认。用户可以选择安装外部托管或不安全   使用--allow-external PROJECT--allow-unverified PROJECT

的文件或网址

所以在这种情况下,后续应该像旧PIP一样工作:

pip install django-endless-pagination==1.1 \
--allow-all-external --allow-unverified django-endless-pagination 

(有no --allow-all-unverified,必须指定每个未验证的项目名称)

如果使用requirements.txt,则应指定如下:

--allow-external django-endless-pagination
--allow-unverified django-endless-pagination

django-endless-pagination==1.1

答案 1 :(得分:2)

在这种情况下,您可以使用相应zip文件的URL作为pip install ::

的输入
pip install https://github.com/frankban/django-endless-pagination/archive/v1.1.zip

当然,并非每个软件包都有这样的URL可用,但大多数都可用。

我偶尔会用这个来安装最新的大师,因为在某些情况下,cheeseshop还没有Python 3就绪包。

答案 2 :(得分:0)

因为PyPI上的版本是2.0,而pip现在试图尊重维护者希望你使用给定版本的事实。