一般的なアプローチは、必要なライブラリのどのバージョンが必要かを指定して、要件ファイルをプロジェクトに同梱することです。このファイルは (慣例により) 多くの場合requirements.txt
、次のような名前が付けられています。
MyApp
BeautifulSoup==3.2.1
SomeOtherLib==0.9.4
YetAnother>=0.2
(上記の架空のファイルには次のように書かれています: BeautifulSoup 3.2.1、SomeOtherLib 0.9.4、および 0.2 以上の任意のバージョンの YetAnother が必要です)。
次に、このプロジェクトのユーザーは、ライブラリを取得して(virtualenvを作成して)実行できます
$ pip install -r requirements.txt
これにより、すべてのライブラリが取得され、システム全体またはプロジェクト全体で利用できるようになります (virtualenv が使用されている場合)。これは、要件ファイルを持つ github からのランダムな python プロジェクトです。
このアプローチの良いところは、推移的な依存関係が自動的に解決されることです。また、virtualenv を使用すると、プロジェクトが明確に分離され、ライブラリ バージョンの競合が回避されます。