Python スクリプト内で Virtualenv をアクティブ化する
Python 仮想環境を操作する場合、Python 内から仮想環境をアクティブ化する必要が生じる場合があります。スクリプト。これにより、特定の環境内でコードの実行を分離できます。
質問:
Python スクリプトから virtualenv をアクティブ化し、アクティブ化された状態を維持するにはどうすればよいですか?
答え:
Python スクリプトから virtualenv をアクティブ化するには 2 つの方法があります:
方法 1: サブプロセスを使用する
virtualenv で特定の Python スクリプトを実行したい場合は、サブプロセス モジュールを利用できます。
import subprocess # Path to the Python interpreter within the virtualenv python_bin = "/path/to/virtualenv/bin/python" # Path to the script to be executed within the virtualenv script_file = "script.py" subprocess.Popen([python_bin, script_file])
このアプローチでは、virtualenv 内でスクリプトを実行する新しいサブプロセスが作成されますが、現在の Python インタープリタの virtualenv はアクティブ化されません。
アプローチ 2: exec() を使用する
現在の Python インタープリタ内で virtualenv を直接アクティブ化するには、次のように呼び出します。 activate_this.py スクリプトで実行します:
# Path to the activate_this.py script within the virtualenv activate_this_file = "/path/to/virtualenv/bin/activate_this.py" exec(open(activate_this_file).read(), {'__file__': activate_this_file})
このアプローチにより、現在の Python インタープリターの環境が変更され、アクティブ化された virtualenv からライブラリをインポートできるようになります。
注:
virtualenv の代わりに venv モジュールを使用する場合、virtualenv ライブラリから activate_this.py の実装をコピーできます。これは多少の調整で機能するはずです。
以上がPython スクリプト内で virtualenv をアクティブ化し、アクティブ化された状態を維持するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。