3

私は2つのHerokuアプリ、両方のPyhon、およびそれらの間で共有されているいくつかのpythonモジュールを持っています(つまり、両方のアプリで同じです)。以下を達成するために私の git / requirements.txt を設定する最良の方法は何ですか?

  1. 共有コードはバージョン管理されています (つまり、これも Git に置かれています。どこにあるかは気にしません。プロジェクトの 1 つですか? 別のプロジェクトですか?)。
  2. 開発中は、その共有コードの単一のコピーがディスク上にあります。
  3. 開発中は、共有コードの 1 つのコピーを変更し、その変更を両方のアプリに反映させることができます。理想的には、ディスク上のファイルを変更する以外に何もする必要はありません。
  4. Heroku にプッシュするときは、単純に「プッシュ」するだけです

私の直感では、共有コードを Python パッケージとしてディスク上に置き、開発中にそれを各アプリの PYTHONPATH に追加する必要があることがわかりました。さらに、各アプリの requriments.txt に (どのように? プライベート サーバーを使用して? s3 から? ベンダー ディレクトリとして?) 追加します。

...しかし、私はそれを釘付けにすることはできません。

何かご意見は?

4

3 に答える 3

4

pip要件ファイルを使用してそれを行うことができます。ローカル開発用に 1 つ、アプリ用に 1 つ持つことができます。詳細については、要件ファイル形式を確認してください。

ローカル開発要件ファイル

file:///path/to/your/lib/project#egg=MyProject

これにより、アプリからの読み取り専用アクセスが可能になります。これは、共有コード (git cloneプロジェクトなど) に役立ちます。HEAD を指すことに注意してください。これは、要件 1、2、3 に適合する必要があります。

プロジェクトのレイアウトについては、setuptools のドキュメントを参照してください。たとえばsetup.py、コードを含むパッケージを作成します。良い例requestsであるライブラリを見ることができます。

アプリ要件ファイル

git://git.myproject.org/MyProject.git#egg=MyProject

これにより、レポにプッシュしたコードがすべて取得されます。Heroku の経験はありませんが、要件ファイルがサポートされていれば、それでうまくいくはずです。これは要件 1 に適合する必要があり、4 を希望します。

Heroku でプライベート git リポジトリを使用する場合は、heroku のドキュメントを参照してusername:passwordください ( basic 認証であり、メール アドレスがないことに注意してください)。パスワードを使用したくない場合は、取り消し可能な OAuth トークンを使用できます。

于 2013-01-18T00:08:50.433 に答える
3

Gitサブモジュールを使用する必要があります。

コードが存在する1つのプロジェクトを作成してから、これへの参照を2つのHerokuアプリに追加します。

于 2013-01-10T09:18:19.637 に答える
1

もう1つのアイデアは、 GitSubtreeMergingを掘り下げることです。

共通のモジュールを両方のリポジトリのブランチとして持つことができ、共通のオリジンを指します。そして、それをプロジェクトフォルダに入れることができます。

于 2013-01-19T07:38:45.700 に答える