Contents Menu Expand Light mode Dark mode Auto light/dark mode Auto light/dark, in light mode Auto light/dark, in dark mode コンテンツへスキップ
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

プロジェクト

  • 開発
    • はじめに
    • コントリビューティング
    • 継続的インテグレーション
    • Issueトリアージ
    • pipの内部構造のアーキテクチャ
      • 広範な機能の概要
      • リポジトリの構造とディレクトリ構造
      • 構成ファイル処理
      • ファイルの検索と選択 (index および PackageFinder)
      • コマンドラインインターフェース
      • インストールプロセスを制御するオプション
    • リリースプロセス
    • ベンダーポリシー
  • UXリサーチとデザイン
    • 貢献する方法
    • UXガイダンス
    • UXリサーチの結果
      • pipのユーザーについて
      • ユーザーがpipをどのように理解しているか
      • pipユーザーがセキュリティについてどのように考えているか
      • pipがインタラクティブな環境(CI、CDなど)でどのように使用されているか
      • pipペルソナ
      • pip機能の優先順位付け
      • 依存関係が競合するパッケージをインストールするためのオーバーライドの提供
      • pip --force-reinstall
      • pip search
      • pipアップグレードの競合
      • pipのドキュメントの改善
  • 変更履歴
  • 行動規範
  • GitHub
  v: stable
バージョン
latest
stable
ダウンロード
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

pip searchアンケートに302件の回答があり、302件中62件(20.5%)の回答者がコマンドの存在を知らなかったり、一度も使用したことがなかったり、「めったに」使用していませんでした。

pip searchを使用している残りの約80%の回答者は、以下の目的で使用していることがわかりました

  • インストールする適切な/新しい/代替パッケージを見つける/検索する

    • パッケージ名の確認(正しいスペルを確認)

    • 機能の評価(パッケージの説明を確認)

    • 可用性の検証(そのようなパッケージが存在するかどうかを確認)

  • パッケージの最新バージョンを検索する(バージョンを確認)

  • パッケージライブラリと新しいモジュールを見つける

一般的に、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.orgに直接リンクすることで、Webサイト自体(ブラウザ内)で検索インデックスを使用するようにユーザーを促すメッセージを表示する必要があります。また、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
著作権 © pip開発者
Sphinxと@pradyunsgのFuroで作成
このページについて
  • pip search
    • 問題点
    • 調査
    • 結果
    • 推奨事項
      • 非推奨化戦略
        • タグとキーワードに基づいた新しいパッケージの検索
        • パッケージの最新バージョンの検証
      • UXの改善