Contents - pip 中文 Menu - pip 中文 Expand - pip 中文 Light mode - pip 中文 Dark mode - pip 中文 Auto light/dark mode - pip 中文 Auto light/dark, in light mode - pip 中文 Auto light/dark, in dark mode - pip 中文 跳至内容
pip 文档 v24.1.2
pip 文档 v24.1.2
  • 入门
  • 安装
  • 用户指南
  • 主题指南
    • 身份验证
    • 缓存
    • 配置
    • 依赖关系解析
    • 更多关于依赖关系解析
    • HTTPS 证书
    • 本地项目安装
    • 可重复安装
    • 安全安装
    • VCS 支持
    • 管理不同的 Python 解释器
    • Pip 不是工作流管理工具
  • 参考
    • 构建系统接口
      • pyproject.toml
      • setup.py (旧版)
    • 需求规范
    • 需求文件格式
    • 安装报告
    • pip inspect JSON 输出规范
  • 命令
    • pip
    • pip install
    • pip uninstall
    • pip inspect
    • pip list
    • pip show
    • pip freeze
    • pip check
    • pip download
    • pip wheel
    • pip hash
    • pip search
    • pip cache
    • pip config
    • pip debug

项目

  • 开发
    • 入门
    • 贡献
    • 持续集成
    • 问题分类
    • Pip 内部架构
      • 广泛的功能概述
      • 存储库解剖学和目录结构
      • 配置文件处理
      • 查找和选择文件 (index 和 PackageFinder)
      • 命令行接口
      • 控制安装过程的选项
    • 发布流程
    • 供应商政策
  • 用户体验研究和设计
    • 如何贡献
    • 用户体验指南
    • 用户体验研究结果
      • 关于 Pip 的用户
      • 用户如何理解 Pip
      • Pip 用户如何看待安全性
      • Pip 如何在交互式环境(例如 CI、CD)中使用
      • Pip 人物
      • 优先考虑 Pip 功能
      • 提供覆盖安装具有冲突依赖项的软件包
      • pip --force-reinstall
      • pip search
      • Pip 升级冲突
      • 改进 Pip 文档
  • 变更日志
  • 行为准则
  • GitHub
  v: 稳定版
版本
最新版
稳定版
下载
在 Read the Docs 上
项目主页
构建
返回顶部
查看此页面
编辑此页面

pip search¶

问题¶

默认情况下,pip search 从命令行搜索 PyPI.org 上的软件包。但是,团队正在 考虑移除它,因为他们认为它不太有用,并且在 PyPI 上使用了太多资源 (PyPI XMLRPC 搜索已因滥用/过度使用而被禁用)。

跳至建议

研究¶

在 PyPI XMLRPC 搜索被禁用之前,我们

  • 通过“购买功能”调查收集了关于 pip search 的反馈

  • 发布了一项专门针对 pip search 的调查,询问用户关于

    • 他们目前对 pip search 的使用情况

    • 他们发现 pip search 结果有多有用

    • 他们发现 pip search 结果有多清晰

    • 用户希望 pip 搜索的地方(例如 PyPI 与私有索引)

    • 除了项目名称之外,pip 应该搜索哪些数据

    • 他们会对 pip search 做出哪些更改或添加

结果¶

总共,我们收到了 1070 份关于“购买功能”调查的回复,其中 541 (50.4%) 的受访者在他们的前 10 个功能中选择了“在 pypi.org 上搜索软件包”。

但是,搜索的排名低于以下功能

  1. 在不需要任何用户输入的情况下运行 pip(例如在 CI 中)718

  2. 显示有关所有已安装软件包的信息707

  3. 显示有关单个已安装软件包的信息596

我们收到了 302 份关于 pip search 调查的回复,其中 302 (20.5%) 的受访者要么不知道该命令存在,要么从未使用过它,要么“很少”使用它。

我们发现,剩下的约 80% 使用 pip search 的受访者使用它来

  • 查找/搜索要安装的正确/新/备用软件包

    • 检查软件包名称(验证拼写是否正确)

    • 评估功能(检查软件包的描述)

    • 验证可用性(检查此类软件包是否存在)

  • 搜索软件包的最新版本(验证版本)

  • 查找软件包库和新模块

总的来说,pip search 被认为

  • 比无用更有用

  • 比不清楚更清晰

当被问及 pip 是否应该搜索除了软件包名称之外的项目时,受访者最常要求搜索软件包描述

wordcloud of common search terms

一些用户还提到,他们希望搜索可配置,例如通过传递标志/选项。

当被问及他们会如何改进 pip search 时,用户表示他们会改进

1. 搜索方法

  • 模糊搜索和不区分大小写应该可以接受

  • 用户应该可以选择按描述、名称、标签进行筛选/排序

2. 搜索结果

  • 相关性:结果应同时显示精确匹配和最接近匹配

  • 顺序/类别:结果应该以特定顺序显示项目,例如下载次数最多(受欢迎程度)、开发状态(最后更新/最新版本)等。

  • 应该限制搜索结果的数量

3. 用户界面

  • 将软件包链接到 pypi 页面

  • 使用颜色编码/系统以提高清晰度

  • 区分精确匹配搜索结果和其他结果:通过突出显示或使用不同的颜色

  • 指示版本兼容性

建议¶

弃用策略¶

鉴于 PyPI 搜索 API 目前已禁用(截至 2021 年 1 月 1 日),出于技术和可持续性原因,我们建议 pip 团队向使用该命令的用户显示一条清晰的错误消息

The PyPI search API has been disabled due to unmanageable load.
To search PyPI, open your browser to search for packages at https://pypi.org
Alternatively, you can search a different index using the --index command.

从长远来看,我们建议 PyPI 团队研究提供搜索结果的替代方法(例如通过缓存),这将使 pip search 能够再次工作。该建议得到了我们研究的支持,该研究表明许多 pip 用户发现此功能很有用。

如果这不可能,pip 团队应该创建清晰的说明,告诉用户改用什么。下面列出了一些建议(基于常见用户流程)

根据标签和关键字查找新软件包¶

这是您对 pip search 的期望的最常见功能,也是弃用后最难替换的功能。

如上所述,pip CLI 应该尽快隐藏用户键入 pip search 时出现的完整跟踪错误消息。相反,pip 应该显示一条消息,鼓励用户通过提供指向 https://pypi.ac.cn 的直接链接,使用网站本身(在他们的浏览器中)的搜索索引。此外,pip 应该提供有关如何使用替代索引的简短提示。

$ pip search pytest

The PyPI search API has been disabled due to unmanageable load.

Please open your browser to search for packages at https://pypi.ac.cn

Alternatively, you can use a different index using the --index command.

   pip search pytest --index <URL>

此外,pip 团队可以实现 PyPI 搜索 API 的替代方案,该方案无需硬性依赖于集中式服务。与 apt 和 yum 等其他分发系统类似,所有软件包名称的元数据都可以在用户的机器上使用选择加入的工作流下载

$ pip search pytest
Using pip search on the command line requires you to download the index first.
Alternatively, you can open your browser to search for packages at https://pypi.ac.cn

Download the index to /System/Library/Frameworks/Python.framework/
Versions/2.7/Resources/Python.app/Contents/MacOS/search.db? (y/n) y
......... done!

<results>

$ pip search pytest
<results>

这是一条更复杂的路,需要更多工程时间,但可以旨在为命令行用户提供类似于旧版 pip search 命令的功能。它还可以检查本地索引的年龄,如果索引过旧,则显示警告。

验证软件包的最新版本¶

用户还使用 pip search 命令查找或验证特定软件包的版本。

作为替代方案,pip 团队可以执行以下任一操作

  1. 扩展 pip show 功能以包括软件包的已知最新版本;

  2. 创建 pip outdated 命令,该命令扫描当前依赖项树并输出与已配置索引上的最新版本相比过时的软件包。

用户体验改进¶

如果能够继续支持 pip search,我们强烈建议进行以下用户体验改进

  • 添加对 模糊搜索 的支持,或建议替代/相关的搜索词

  • 添加对不区分大小写搜索的支持

  • 基于软件包的描述进行搜索

  • 将搜索结果链接到软件包的 PyPI 页面(在适当的情况下)

团队应根据具体情况考虑其他用户反馈(如上所述)。

下一页
Pip 升级冲突
上一页
Pip --force-reinstall
版权 © Pip 开发者
使用 Sphinx 和 @pradyunsg's Furo 制作
在本页
  • pip search
    • 问题
    • 研究
    • 结果
    • 建议
      • 弃用策略
        • 根据标签和关键字查找新软件包
        • 验证软件包的最新版本
      • 用户体验改进