在 python 脚本中使用 pip search
using pip search inside a python script
简而言之,我正在准备一个 python 脚本来搜索私有 pypi 存储库中所有必需的依赖项
如果 repo 中存在所有依赖项,则脚本置顶,否则构建它们并将它们推送到 pypi repo
我看过一些例子:
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 环境安装不当有关。
适合我。
-->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'>
有一种方便的方法可以以相同的方式执行所有 pip 命令。
import pip
pip._internal.main(['search', package])
您可以将 "search" 替换为 "install" 等
更多信息,您可以阅读another answer
简而言之,我正在准备一个 python 脚本来搜索私有 pypi 存储库中所有必需的依赖项
如果 repo 中存在所有依赖项,则脚本置顶,否则构建它们并将它们推送到 pypi repo
我看过一些例子:
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 环境安装不当有关。
适合我。
-->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'>
有一种方便的方法可以以相同的方式执行所有 pip 命令。
import pip
pip._internal.main(['search', package])
您可以将 "search" 替换为 "install" 等
更多信息,您可以阅读another answer