Pypi 查看包的旧版本

这是我感兴趣的包裹:

Django 文件浏览器没有 Grappelli

然而,最新的版本不再支持 Django 1.3。 如何查看旧版本的列表?

20225 次浏览

如果使用 pip安装软件包,则可以使用:

pip install yolk
yolk -V django-filebrowser-no-grappelli

不幸的是,唯一可用的版本似乎是:

django-filebrowser-no-grappelli 3.1.1

不过,你可以尝试在互联网上找到另一个版本,并通过以下方式安装:

pip install -Iv <url_package>

这可能有点不雅观,但似乎您可以访问 URL

https://pypi.python.org/simple/<package>

而且您将获得一系列到包的 tarball 的链接。

例如:

https://pypi.python.org/simple/django-filebrowser-no-grappelli/

Get _ version. py文件中存储以下代码:

import json
import sys
import urllib2


from distutils.version import LooseVersion


name = sys.argv[1]


resp = urllib2.urlopen("https://pypi.python.org/pypi/{}/json".format(name))
data = json.load(resp)


for ver in sorted([LooseVersion(version) for version in data["releases"].keys()]):
print ver.vstring

运行它以获得所有软件包版本的排序列表:

python get_version.py %PACKAGE-NAME%

您可以使用这个简短的 Python 3脚本使用 JSON API从 PyPI 获取包的可用版本列表:

#!/usr/bin/env python3


import sys
import requests
from pkg_resources import parse_version


def versions(pkg_name):
url = f'https://pypi.python.org/pypi/{pkg_name}/json'
releases = requests.get(url).json()['releases']
return sorted(releases, key=parse_version, reverse=True)


if __name__ == '__main__':
print(*versions(sys.argv[1]), sep='\n')

演示:

$ python versions.py django-filebrowser-no-grappelli
3.7.8
3.7.7
3.7.6
3.7.5
3.7.4
3.7.3
3.7.2
3.7.1
3.7.0
3.6.2
3.6.1
3.5.8
3.5.7
3.5.6
3.1.1

这可以在新的用于 pypi 的 UI 中看到:

https://pypi.org/project/<package>/#history

例如:

https://pypi.org/project/django-filebrowser-no-grappelli/#history

使用 pip,你可以找到该软件包的所有可用版本:

pip install django-filebrowser-no-grappelli==randomwords

这将产生所有可用软件包的输出:

Could not find a version that satisfies the requirement
django-filebrowser-no-grappelli==randomwords
(from versions: 3.1.1, 3.5.6, 3.5.7, 3.5.8, 3.6.1, 3.6.2, 3.7.0, 3.7.1, 3.7.2)
No matching distribution found for
django-filebrowser-no-grappelli==randomwords