Django プロジェクトのバージョン管理に Git を使用しています。
可能な限り、プロジェクト自体の一部ではないが、プロジェクトが依存しているすべてのソースコードは、Git サブモジュールとして取り込まれます。これらはlib
ディレクトリに存在し、python パスに含める必要があります。ディレクトリ/ファイルのレイアウトは次のようになります。
.git
docs
lib
my_project
apps
static
templates
__init__.py
urls.py
manage.py
settings.py
.gitmodules
README
Pythonパスにライブラリを含めるためのベストプラクティスは何だと思いますか?
私は virtualenv を使用しているので、ライブラリを virtualenv の site-packages ディレクトリに簡単にシンボリック リンクできます。ただし、これにより virtualenv がこの特定のプロジェクトに関連付けられます。私の理解では、virtualenv は私のファイルに依存すべきではありません。代わりに、私のファイルは virtualenv に依存する必要があります。
このプロジェクトの異なるローカル コピーに同じ virtualenv を使用することを考えていましたが、このようにするとその機能が失われます。これにアプローチするより良いアイデアはありますか?
アップデート:
最善の解決策は、すべての依存関係を pip に管理させることでした。
ただし、これは、pipがまだ相対パスを適切に処理できないため、git サブモジュールを使用できないことを意味します。したがって、外部依存関係は virtualenv (通常: my_env/src/a_python_module) に存在する必要があります。
プロジェクトツリーにいくつかの依存関係を持たせるために、サブモジュールを使用したいと思います。リポジトリの一部を変更するためにこれらのリポジトリをフォークする必要があり、将来的にはさらに変更する必要がある可能性が高いため、これは私にとってより理にかなっています。