2014-06-18 91 views
16

對於每個python包,您可以指定一個list of classifiers。其中有一個Topic分類器,它將該軟件包放置在指定的類別中,該類別可以是browsed on PyPI按主題搜索PyPI

例如,numpy有以下主題:

Topic :: Software Development 
Topic :: Scientific/Engineering 

有沒有辦法通過編程方式使用pip search或其他第三方庫的話題進行搜索嗎?

+0

'PIP search'應包括一個 「按主題」 搜索! – gaborous

回答

14

您可以通過分類通過XMLRPC API搜索的PyPI,使用browse()方法:

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 
} 

...等