我如何才能对所有提供的搜索词进行“pip 搜索”?

我如何才能对所有提供的搜索词进行“pip 搜索”?

有没有办法在 pip 搜索中对搜索词进行 AND 运算?

例如,这样做:

pip search django toolbar

似乎显示所有与 django 相关的包,即使它们与工具栏无关。

我能做的最好的事情就是解决以下问题:

pip search django toolbar | grep toolbar | grep django

更新:

这个更好:

pip search toolbar | grep django

让我的问题变得毫无意义

答案1

简而言之,你不能。

安装后pip,我看了一下site-packages/pip-1.2.1-py2.6.egg/pip/commands/search.py,这是search命令已实现。

它使用 PyPi 的 XML-RPC 接口,该接口的文档位于http://wiki.python.org/moin/PyPiXmlRpc
我们可以看到搜索的足迹是search(spec[, operator])。文档说明:

不同字段的参数使用“and”(默认)或“or”组合。示例:search({'name': 'foo', 'description': 'bar'}, 'or')。结果以字典列表的形式返回:{'name': 软件包名称,'version': 软件包发布版本,'summary': 软件包发布摘要}

太棒了!这就是我们定义搜索运算符的地方!and甚至是默认的!

现在回到search.py...

def search(self, query, index_url):
    pypi = xmlrpclib.ServerProxy(index_url, pip.download.xmlrpclib_transport)
    hits = pypi.search({'name': query, 'summary': query}, 'or')
    return hits

这里我们看到了'or'硬编码。

相关内容