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 使用者如何看待安全性
      • 如何在互動式環境 (也就是CI, CD) 中使用 pip
      • 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 問卷調查的回覆,其中 62 位(20.5%)的受訪者不是不知道這個指令的存在、就是從未使用過,或「很少」使用。

我們發現剩下的約 80% 使用 pip search 的受訪者使用它來

  • 尋找或搜尋要安裝的正確/新的/備用的套件

    • 檢查套件名稱(驗證拼字正確性)

    • 評估功能(檢查套件的說明)

    • 驗證可用性(檢查是否有這樣的套件)

  • 搜尋套件的最新版本(驗證版本)

  • 尋找套件函式庫和新模組

一般來說,pip search 被認為是

  • 有用多於沒用

  • 清楚多於不清楚

當被問及 pip 是否應該搜尋而不是套件名稱的其他項目時,受訪者最常要求搜尋套件說明

wordcloud of common search terms

有些使用者也提到他們希望搜尋可以進行設定,例如透過傳遞旗標/選項。

當被問及他們將如何改善 pip search 時,使用者表示他們會改善

1. 搜尋方法

  • 模擬搜尋和不區分大小寫應是可以接受的

  • 使用者應有選擇,可以依據說明、名稱和標籤進行過濾/排序

2. 搜尋結果

  • 相關性:結果應同時顯示完全符合的條件和最接近的條件

  • order/category:結果應依特定順序顯示項目,如最高下載次數(熱門程度)、開發狀態(最後更新 / 最新版本)等。

  • 搜尋結果的數量應有限制。

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 搜尋功能能夠再次運作。我們的研究結果支持這項建議,這項研究顯示許多 pip 使用者發現這個功能非常實用。

如果無法達成,pip 團隊應建立明確的說明,告知使用者可以改用哪些方式。以下是幾個建議(基於常見使用者流程)

根據標籤和關鍵字尋找新套件¶

這是使用者對於 pip search 最常期待的功能,也可能是淘汰後最難取代的功能。

如上所述,pip CLI 應在使用者輸入 pip search 時,盡快隱藏完整堆疊追蹤錯誤訊息。而應該顯示一條鼓勵使用者在網站本身(在他們的瀏覽器)上使用搜尋索引的訊息,並直接提供連結至 https://pypi.org。此外,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.org

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.org

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 指令,用於掃描目前的依賴結構,並輸出已過時(與已設定索引中的最新版本相比較)的套件。

UX 改進¶

如果要繼續支援 pip search,我們強烈建議進行下列 UX 改進

  • 加入支援 模糊搜尋,或建議其他/相關的搜尋字詞

  • 加入支援不分大小寫搜尋

  • 根據套件描述進行搜尋

  • 提供搜尋結果的連結到套件的 PyPI 頁面(如果適當的話)

團隊應逐案考慮其他使用者回饋(如上所述)。

下一篇
pip 升級衝突
上一篇
pip --force-reinstall
版權 © The pip developers
使用 Sphinx 和 @pradyunsg 的 Furo 製作
在此頁面中
  • pip search
    • 問題
    • 研究
    • 結果
    • 建議
      • 不建議使用的策略
        • 根據標籤和關鍵字尋找新的套件
        • 驗證套件最新版本
      • UX 改進