を使用し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 のバージョンを指している限り、問題ありません。