按主题搜索 PyPI

2024-01-24

对于每个 python 包,你可以指定一个分类器列表 https://pypi.python.org/pypi?%3aaction=list_classifiers。其中有一个Topic分类器,将包放入指定的类别中,可以浏览过PyPI https://pypi.python.org/pypi?%3aaction=browse.

例如,numpy https://github.com/numpy/numpy/blob/master/setup.py#L42-43有以下主题:

Topic :: Software Development
Topic :: Scientific/Engineering

有没有一种方法可以使用编程方式按主题进行搜索pip search或者其他第三方库?


您可以通过分类器搜索 PyPIXMLRPC API https://wiki.python.org/moin/PyPIXmlRpc, 使用browse() https://wiki.python.org/moin/PyPIXmlRpc#line-143 method:

try:
    import xmlrpclib  # Python 2
except ImportError:
    import xmlrpc.client as xmlrpclib  # Python 3

pypi = xmlrpclib.ServerProxy('http://pypi.python.org/pypi')

packages = pypi.browse([
    "Topic :: Software Development",
    "Topic :: Scientific/Engineering",
])

在上面的例子中,packages包含一个列表[package, version]列出同时满足“主题 :: 软件开发”和“主题 :: 科学/工程”分类器的所有包:

>>> {pkg: ver for pkg, ver in packages if "numpy" in pkg}
{
    'nose-numpyseterr': '0.1',
    'msgpack-numpy': '0.3.2',
    'numpy': '1.8.1',
    'idx2numpy': '1.0b'
}

从那里,您可以检索有关给定版本的更多信息:

>>> release = pypi.release_data('numpy', '1.8.1')
>>> release['download_url']
'http://sourceforge.net/projects/numpy/files/NumPy/'
>>> release['platform']
'Windows,Linux,Solaris,Mac OS-X,Unix'
>>> release['downloads']
{
    'last_day': 5818,
    'last_month': 187688,
    'last_week': 44764
}

... etc.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按主题搜索 PyPI 的相关文章

随机推荐