2

私は数年間 Python を使用してきましたが、Python が私の主要な言語になったことはなく、依存関係についてあまり心配する必要があるプロジェクトに使用したこともありません。

を使わなければならない時が来ましたvirtualenv。インストールは簡単に思えますが、現在のプロジェクトで使用されている依存関係のリストを作成する論理的な方法を理解しようとしています。

試してみるpip freeze -lと、100 を超える依存関係が見つかりましたが、そのほとんどはこのプロジェクトでは使用されていません。

私のマシンにインストールされているライブラリのうち、どのバージョンがこのプロジェクトで使用されているかを簡単に見つける方法はありますか?

4

1 に答える 1

4

残念ながら、これを行う良い方法はわかりません。通常、この種の状況に直面した場合pip freeze、システムにインストールされているすべてのパッケージのバージョンを取得してから、プロジェクトに必要なパッケージを推測して確認します。

たとえば、プロジェクトに Django が必要であることがわかっている場合は、どのバージョンの Django がリストされているかを調べ、それpip freezeをプロジェクトのファイルに追加し、requirements.txtそのバージョンの Django を virtualenv にインストールしてから、プロジェクトを実行して何がクラッシュするかを確認します。 .

次のようなものを実行して、何も見逃していないことを確認するために健全性チェックを行うこともできます。

egrep -h -R --include='*.py' '^(import|from) ' myproject/ | cut -d. -f1 | awk '{ print $2 }' | sort -u

そして、すべての非標準ライブラリ パッケージがインストールされていることを再確認します。

ただし、明示的にインポートされていないパッケージは考慮されないことに注意してください…</p>

于 2013-11-07T21:08:06.300 に答える