0
virtualenvを動的にロードする方法はありますか?Django.fcgiを使った動的な仮想化
#!/home/root/.virtualenvs/production/bin/python
import os, sys
...
私は、フォルダ名はstaging
またはproduction
ある場合によっては
#!/home/root/.virtualenvs/production/bin/python
または#!/home/root/.virtualenvs/staging/bin/python
するパスが欲しい私は、フォルダ名をこのように得ることができます。
_PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, _PROJECT_DIR)
sys.path.insert(0, os.path.dirname(_PROJECT_DIR))
_FOLDER_NAME = _PROJECT_DIR.split('/')[-1]
しかし、これに基づいて動的な方法でvirtualenvをロードできるかどうかはわかりません。
これはデプロイメント上の問題です。ステージング環境では、実稼動のためにハードコードされているため、パスを置き換える必要があります。
私はそれが何をしているのかよく分かりません。 'python'バイナリは、私が動いているvirtualenvに応じて動的に変更するのですか? 'source〜/ .virtualenvs/staging/bin/activate'を実行するときのように、'/usr/bin/env python'は 'staging' virtualenvから実行可能なpythonでしょうか? – Vadorequest
'env'は、あなたが働いている環境(' $ PATH'環境変数に依存します)に従って、適切なPythonインタプリタを取り出して起動することを可能にします。 これは、システム上のインタープリタのパスが不明な場合にスクリプトでよく使用されます。 – vmonteco
次に、virtualenvからスクリプトを起動しない場合は、システムのインタプリタを使用する必要があります。また、virtualenvから起動する場合は、このvirtualenvのインタプリタを使用する必要があります。 – vmonteco