令我非常失望的是,pip软件包管理器未显示尚未安装的软件包的任何信息。得到任何东西的唯一方法似乎是使用pip search XXX |grep -i XXX
grep 简短描述的输出。
也许可以使用从PyPI使用wget
或curl
的聪明方法吗?
编辑: 我设法得到了 curl 单线纸:
这是Bash的一线:
curl -sG -H 'Host: pypi.org' -H 'Accept: application/json' https://pypi.org/pypi/numpy/json | awk -F "description\":\"" '{ print $2 }' |cut -d ',' -f 1
# NumPy is a general-purpose array-processing package designed to...
但是,最好使用其他更健壮的方法。
答案 0 :(得分:1)
PyPI提供了用于访问包元数据的API:
Simple:来自https://pypi.org/simple/<pkgname>
的响应是一个HTML页面,它是下载URL的列表,可以用任何HTML解析器(例如beautifulsoup
或{{1 }}。
JSON:来自lxml
的响应是一个JSON字符串,可以使用任何JSON处理工具进行处理。使用http://pypi.org/pypi/<pkgname>/json
的注释示例:
requests
命令行替代方案将使用yolk
。使用
In [1]: import requests
In [2]: data = requests.get('https://pypi.org/pypi/lxml/json').json()
In [3]: data['info']['summary']
Out[3]: 'Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.'
In [4]: data['info']['description']
Out[4]: 'lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries. It\nprovides safe and convenient access to these libraries using the ElementTree\nAPI.\n\nIt extends the ElementTree API significantly to offer support for XPath,\nRelaxNG, XML Schema, XSLT, C14N and much more.\n\nTo contact the project, go to the `project home page\n<http://lxml.de/>`_ or see our bug tracker at\nhttps://launchpad.net/lxml\n\nIn case you want to use the current in-development version of lxml,\nyou can get it from the github repository at\nhttps://github.com/lxml/lxml . Note that this requires Cython to\nbuild the sources, see the build instructions on the project home\npage. To the same end, running ``easy_install lxml==dev`` will\ninstall lxml from\nhttps://github.com/lxml/lxml/tarball/master#egg=lxml-dev if you have\nan appropriate version of Cython installed.\n\n\nAfter an official release of a new stable series, bug fixes may become\navailable at\nhttps://github.com/lxml/lxml/tree/lxml-4.2 .\nRunning ``easy_install lxml==4.2bugfix`` will install\nthe unreleased branch state from\nhttps://github.com/lxml/lxml/tarball/lxml-4.2#egg=lxml-4.2bugfix\nas soon as a maintenance branch has been established. Note that this\nrequires Cython to be installed at an appropriate version for the build.\n\n4.2.5 (2018-09-09)\n==================\n\nBugs fixed\n----------\n\n* Javascript URLs that used URL escaping were not removed by the HTML cleaner.\n Security problem found by Omar Eissa.\n\n\n\n\n'
在$ pip install yolk3k
上使用lxml
进行摘要和描述的查询:
yolk