を使用しvirtualenv
てスクリプトを実行しています。このスクリプトでは、次のように呼び出します。
os.system('python anotherScript.py')
私の質問は、スクリプトがvirtualenv
呼び出し元スクリプトと同じように実行されるかどうかです。
を使用しvirtualenv
てスクリプトを実行しています。このスクリプトでは、次のように呼び出します。
os.system('python anotherScript.py')
私の質問は、スクリプトがvirtualenv
呼び出し元スクリプトと同じように実行されるかどうかです。
わかりにくいですが、このスクリプトをアクティブ化された virtualenv で実行している場合は、その virutla 環境にいる必要があります。あなたはあなたの考えを確認することができます
#script.py
import os
os.system('which python')
そしてコマンドラインから
virtualenv newvirtualenv
source newvirtualenv/bin/activate
(newvirtualenv) user@ubuntu: python script.py
あなたはそれが下にあるのを見るべきですnewvirtualenv/bin/python
通常、現在の環境を使用するために実行可能なヘッダーを配置します。
#!/usr/bin/env python
import os
os.system('which python')
これは usenewvirtualenv
とは言いませんが、スクリプトが の下で実行される場合、もう少し自信が持てnewvirtualenv
ます。間違いなくnewvirtualenv
.
これを使用する場合/usr/bin/python
でも、virtualenv で問題ありません。しかし、上級プログラマーの場合、複数の仮想環境と複数の Python バージョンを持つ傾向があります。そのため、場所によっては、環境変数に基づいてスクリプトを実行できます。わずかな利益です。
実行newvirtualenv/bin/python script.py
すると、関係なく virtualenv の下になります。
python
バイナリが virtualenv のバージョンを指している限り、問題ありません。