21

Python パッケージの依存関係ツリーを分析したいと考えています。このデータを取得するにはどうすればよいですか?

私がすでに知っていること

  1. setup.pyrequiresパッケージの依存関係をリストするフィールドが含まれている場合があります
  2. PyPi は Python パッケージのオンライン リポジトリです。
  3. PyPiにはAPIがあります

私が知らないこと

  1. PyPi のごく少数のプロジェクト (約 10%) は、requires現場で依存関係を明示的にリストしていますが、pip/easy_installそれでも正しいパッケージをダウンロードすることができます。私は何が欠けていますか?たとえば、統計計算用の一般的なライブラリであるpandasは、一覧には表示されませんが、などrequiresをインストールできます。依存関係の完全なリストを自動的に収集するより良い方法はありますか?numpypytz
  2. 既存のデータベースはどこかにありますか? 既存の作業を繰り返していますか?
  3. 分散システム (R、Clojure など) を備えた他の言語用の同様の、簡単にアクセスできるデータベースは存在しますか?
4

3 に答える 3

18

新しいキーワードと変更されたキーワードinstall_requiresを参照してください。setup

requires依存関係のインストールに頼るには、あいまいすぎるフィールドと見なされます。さらに、テストを実行するために必要な依存関係のフィールドがsetup_requiresあります。test_requiressetup.py

確かに、依存関係グラフは以前に分析されています。Olivier Girardot によるこのブログ記事から、この素晴らしい画像が得られます。

PyPI の依存関係
画像は、グラフのインタラクティブ バージョンにリンクされています。

于 2013-03-29T17:57:28.993 に答える
2

pipなどのツールを使用すると、各パッケージのすべての要件を一覧表示できます。

コマンドは次のとおりです。

pip install --no-install package_name

スクリプトで pip の一部を再利用できます。要件の解析を担当する部分は module ですpip.req

于 2013-03-29T18:05:55.613 に答える