4

ローカル環境をセットアップし、そこにすべての要件をインストールするためのブートストラップスクリプトを作成したいと思います。私は彼らのドキュメントで説明されているようにvirtualenv.create_bootstrap_scriptを試してきました。

import virtualenv
s = virtualenv.create_bootstrap_script('''
import subprocess
def after_install(options, home_dir):
  subprocess.call(['pip', 'install', 'django'])
''')
open('bootstrap.py','w').write(s)

結果のbootstrap.pyを実行すると、仮想環境が正しくセットアップされますが、Djangoをグローバルにインストールしようとします。

このローカル仮想環境にのみDjangoをインストールするブートストラップスクリプトを作成するにはどうすればよいですか。WindowsとLinuxの両方で動作する必要があります。

4

4 に答える 4

2

次の方法で、pip を virtualenv に強制的にインストールできます。

subprocess.call(['pip', 'install', '-E', home_dir, 'django'])

さらに、django 1.3 の場合、依存関係を requirements.txt ファイルに保存することは、次のような便利な規則です。

django==1.3

そしてあなたのafter_install

subprocess.call(['pip', 'install', '-E', home_dir, '-r', path_to_req_txt])
于 2012-04-08T14:05:09.243 に答える
0

WindowsとLinuxの両方で機能するソリューション。ブートストラップスクリプトによってインストールされたばかりのpipを使用します。

import virtualenv
s = '''
import subprocess, os
def after_install(options, home_dir):
  if os.name == 'posix':
    subprocess.call([os.path.join(home_dir, 'bin', 'pip'), 'install', '-r', 'requirements.txt'])
  else:
    subprocess.call([os.path.join(home_dir, 'Scripts', 'pip.exe'), 'install', '-r', 'requirements.txt'])
'''
script = virtualenv.create_bootstrap_script(s, python_version='2.7')
f = open('bootstrap.py','w')
f.write(script)
f.close()

requirements.txtすべてのパッケージに1行ずつ、要件を入力するだけです。

django
django-registration==1.4.3

参照:Pip-要件ファイル

于 2013-02-15T14:05:15.757 に答える
0

pipvirtualenv にあるスクリプトへの完全修飾パスを渡す必要があります。

subprocess.call([join(home_dir, 'bin', 'pip'),'install','django'])

于 2012-04-08T11:18:37.093 に答える