web-dev-qa-db-ja.com

pythonスクリプトを実行しているバイナリのパスを取得します

私はPylonsコントローラーを持っています(無関係ですが、なぜこの必要があるのか​​説明します)と言うstarter.pyは、次を使用して別のプロセスを開始します。

retcode = subprocess.call(('python','/path/to/myScript.py'))

アプリは仮想環境で実行されるので、pythonは、仮想環境にインストールされているサイトパッケージにアクセスできないため、呼び出すのに適切なバイナリではありません。

代わりに:

retcode = subprocess.call(('path/to/virtual/env/bin/python','/path/to/myScript.py'))

およびpath/to/virtual/env/bin/pythonは、実行中のものと同じですstarter.py

このパスを(たとえば、.iniファイルで)設定せずに取得しない可能性はありますか?

33
neurino

パスは sys.executable

57
Sven Marnach