Python和pip,列出可用的软件包的所有版本?

爷,独闯天下 提交于 2020-02-27 11:38:26

给定可以与pip一起安装的Python软件包的名称,是否有任何方法可以找到pip可以安装的所有可能版本的列表? 现在是反复试验。

我正在尝试为第三方库安装一个版本,但是最新版本太新了,进行了向后不兼容的更改。 所以我想以某种方式列出pip知道的所有版本,以便我可以对其进行测试。


#1楼

https://pypi.python.org/pypi/Django/-适用于维护者选择显示所有软件包的软件包https://pypi.python.org/simple/pip/-无论如何都应该做到这一点(列出所有链接)


#2楼

更新:
从2017年9月开始,此方法不再起作用: --no-install在pip 7中删除了--no-install

使用pip install -v ,您可以看到所有可用的版本。

root@node7:~# pip install web.py -v
Downloading/unpacking web.py
  Using version 0.37 (newest of versions: 0.37, 0.36, 0.35, 0.34, 0.33, 0.33, 0.32, 0.31, 0.22, 0.2)
  Downloading web.py-0.37.tar.gz (90Kb): 90Kb downloaded
  Running setup.py egg_info for package web.py
    running egg_info
    creating pip-egg-info/web.py.egg-info

要不安装任何软件包,请使用以下解决方案之一:

root@node7:~# pip install --no-deps --no-install flask -v                                                                                                      
Downloading/unpacking flask
  Using version 0.10.1 (newest of versions: 0.10.1, 0.10, 0.9, 0.8.1, 0.8, 0.7.2, 0.7.1, 0.7, 0.6.1, 0.6, 0.5.2, 0.5.1, 0.5, 0.4, 0.3.1, 0.3, 0.2, 0.1)
  Downloading Flask-0.10.1.tar.gz (544Kb): 544Kb downloaded

要么

root@node7:~# cd $(mktemp -d)
root@node7:/tmp/tmp.c6H99cWD0g# pip install flask -d . -v
Downloading/unpacking flask
  Using version 0.10.1 (newest of versions: 0.10.1, 0.10, 0.9, 0.8.1, 0.8, 0.7.2, 0.7.1, 0.7, 0.6.1, 0.6, 0.5.2, 0.5.1, 0.5, 0.4, 0.3.1, 0.3, 0.2, 0.1)
  Downloading Flask-0.10.1.tar.gz (544Kb): 4.1Kb downloaded

经过pip 1.0测试

root@node7:~# pip --version
pip 1.0 from /usr/lib/python2.7/dist-packages (python 2.7)

#3楼

您可以使用yolk3k软件包而不是yolk。 yolk3k是原始蛋黄的叉子,它同时支持python2和3。

https://github.com/myint/yolk

pip install yolk3k

#4楼

对于> = 9.0的点

$ pip install pylibmc==
Collecting pylibmc==
  Could not find a version that satisfies the requirement pylibmc== (from 
  versions: 0.2, 0.3, 0.4, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.5.5, 0.5, 0.6.1, 0.6, 
  0.7.1, 0.7.2, 0.7.3, 0.7.4, 0.7, 0.8.1, 0.8.2, 0.8, 0.9.1, 0.9.2, 0.9, 
  1.0-alpha, 1.0-beta, 1.0, 1.1.1, 1.1, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.3.0)
No matching distribution found for pylibmc==

–将打印所有可用版本,而无需实际下载或安装任何其他软件包。

对于pip <9.0使用

pip install pylibmc==blork

其中blork可以是不是有效版本号的任何字符串。


#5楼

您不需要第三方软件包即可获取此信息。 pypi为以下所有包提供了简单的JSON feed

https://pypi.python.org/pypi/{PKG_NAME}/json

以下是一些仅使用获取所有版本的标准库的Python代码。

import json
import urllib2
from distutils.version import StrictVersion

def versions(package_name):
    url = "https://pypi.python.org/pypi/%s/json" % (package_name,)
    data = json.load(urllib2.urlopen(urllib2.Request(url)))
    versions = data["releases"].keys()
    versions.sort(key=StrictVersion)
    return versions

print "\n".join(versions("scikit-image"))

该代码打印出来(截至2015年2月23日):

0.7.2
0.8.0
0.8.1
0.8.2
0.9.0
0.9.1
0.9.2
0.9.3
0.10.0
0.10.1
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!