2

私はこれが完全に可能であり、多くの人がすでにそれを行っていることを知っていますが、私の問題は少し異なり、まだ解決策を見つけることができませんでした:

サードパーティの Django アプリの構造を以下のようにします。

  • ジャンゴモジュール
    • モジュール
      • 初期化.py
      • ビュー.py
      • models.py
    • 要件.txt
    • setup.py

module「module.views」と入力するだけでviews.pyファイルにアクセスできるため、ディレクトリのみをサブモジュールとしてバンドルしたい。django-module ディレクトリをインポートすると、モジュール ファイルにアクセスするために django-module.module.views を記述する必要がありますが、これは実現不可能です。

私の目的は、モジュールを変更し、元のリポジトリにプル リクエストを時々行うことです。従うことができるワークフローはありますか、またはこの目的のためのベスト プラクティスは何ですか?

4

2 に答える 2

3

ピップのヒント

Pip は、編集可能なパッケージと git を使用したパッケージの取得をサポートしているためvirtualenvを作成し、pip を使用してパッケージをインストールし、必要に応じて pip を使用してそれらを更新できます。

したがって、次を追加できます。

-e git://git.myproject.org/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709#egg=MyProject

requirements.txtその正確なコミットを取得するには、あなたに。


推奨ワークフロー

あなたの問題を解決する最良の方法は次のとおりだと思います。

  • パッケージのプライベートフォークを作る
  • フォークされたリポジトリの特定の開発ブランチでパッケージを編集します
  • 要件ファイルでフォークの開発ブランチのパッケージを使用します。

  • 気が向いたら、使用しているフォークされたパッケージを pip を使用して更新します。

  • プル リクエストを作成する準備ができたら、オリジンをプルし、作業ブランチを origin/master にリベースして、フォークのマスター ブランチからプル リクエストを作成します。

これは、コードが存在する 3 つの場所があることを意味します。

  • 元のレポ (アクセス権がない場所)
  • フォークされたレポ (フォークで作業する場所)
  • pipがインストールした場所(フォークを使用する場所)
于 2012-11-01T19:07:04.660 に答える
0

ベスト プラクティスは、サブモジュールをそのままにしておくことです。

サードパーティ モジュールをサブモジュールとしてアプリに追加したら、次のステップは、その "django-module" ディレクトリを Python パスに追加することです。django-module が Python パス上にある限り、必要に応じて「module.views」と入力することで、通常どおりサブモジュールを使用できます。

于 2012-11-01T19:02:12.730 に答える