在python脚本中使用pip搜索

时间:2019-02-06 12:00:44

标签: python pip pypi

简而言之,我正在准备一个python脚本来搜索私有pypi存储库中的所有必需依赖项

如果所有依赖项都存在于存储库中,则脚本会位于顶部(如果没有),它将构建它们并将其推入pypi存储库

我看过一些使用示例:

search_command = pip.commands.search.SearchCommand() options, _ = search_command.parse_args([name, "--index", publish_pypi_simple_url]) pypi_hits = search_command.search(name, options) hits = pip.commands.search.transform_hits(pypi_hits)

但是运行此代码时我得到

AttributeError: module 'pip' has no attribute 'commands'

对于使用python脚本在私有pypi存储库中执行pip搜索的人,有没有好的解决方案?

谢谢大家

编辑:

我的问题与安装错误的python环境有关。

2 个答案:

答案 0 :(得分:0)

为我工作。

-->python2 -c "import pip; print(pip.commands); print(pip.commands.search)"
<module 'pip.commands' from '/usr/lib/python2.7/site-packages/pip/commands/__init__.pyc'>
<module 'pip.commands.search' from '/usr/lib/python2.7/site-packages/pip/commands/search.pyc'>

-->python3 -c "import pip; print(pip.commands); print(pip.commands.search)"
<module 'pip.commands' from '/usr/lib/python3.6/site-packages/pip/commands/__init__.py'>
<module 'pip.commands.search' from '/usr/lib/python3.6/site-packages/pip/commands/search.py'>

答案 1 :(得分:0)

有一种方便的方法可以以相同的方式执行所有pip命令。

import pip
pip._internal.main(['search', package])

您可以将“搜索”替换为“安装”等。

有关更多信息,您可以阅读another answer