virtualenvには、2つ以上のフックを持つ自分自身のコピーを作成するきれいな機能があります。あなたの場合、重要なフックはafter_installです。これはvirtualenvのインストール直後に実行されます。
ただ、次の内容のスクリプトを作成します。
import os, virtualenv
extra_text = """
import os, subprocess
def after_install(options, home_dir):
subprocess.call([
os.path.join(home_dir, 'bin', 'pip'),
'install',
'-r',
'relative_path_from_env_home_to_requirements_file',
])
def adjust_options(options, args):
if not args: args.append('.')
"""
output = virtualenv.create_bootstrap_script(extra_text)
open('bootstrap.py', 'w').write(output)
そして、それを実行します。 virtualenvのは、プロジェクトのルートに作成されたので、svnのようにしてくださいされ
./bootstrap.py --no-site-packages
:無視するか.gitignoreそれはあなたの仲間はvirtualenvのと必要なパッケージの両方をブートストラップするために実行する必要がありbootstrap.py
ファイルを作成します。コミットする前に作成されたディレクトリ。
これの唯一の欠点は、AFAIKはvirtualenvwrapperと統合されていないことです。しかし、とにかくこれの存在理由はプロジェクトに環境を持たせることであり、virtualenvwrapperの環境はあなたのホームディレクターに環境を持たせることです。
答えを受け入れるケア? :-) –
ビルドアウトを使用して自動化しようとしていることは、このように見えます。 buidoutはdjangoをインストールし、hg repoから私のdjangoプロジェクトをクローンし、チーズショップから他の依存関係をインストールする必要があります。これをどうやって行うのですか?私は 'djangorecipe'と 'mercurialrecipe'に出くわしましたが、それらを一緒にまとめる方法はありません。 – Guruprasad
一般に、あなたはビルドアウト自体をチェックアウトするので、 'buildout.cfg'と' bootstrap.py'をあなたのプロジェクトのルート。そうすれば、誰かがあなたのプロジェクトをチェックアウト/クローン作成するときに、彼らは単にブートストラップ/ビルドアウトを行うだけで、彼らは稼動しています。 *複数のチェックアウトがある場合は、 'mr.developer 'を調べてください。 –