web-dev-qa-db-ja.com

Pythonインタプリタのフルパスを見つけますか?

現在実行中のPythonスクリプト内から現在実行中のPythonインタプリタのフルパスを見つけるにはどうすればよいですか?

306
vy32

sys.executableには、現在実行中のPythonインタプリタのフルパスが含まれています。

import sys

print(sys.executable)

これは現在 ここに文書化されています

480
Imran

os.environ を使用して、疑問のある有用性の異なる方法に注意してください。

import os
python_executable_path = os.environ['_']

例えば.

$ python -c "import os; print(os.environ['_'])"
/usr/bin/python
8
famousgarkin

Linuxで現在使用されているpythonを理解するためのいくつかの代替方法があります。1)which pythonコマンド。 2)command -v pythonコマンド3)type pythonコマンド

同様にCygwinがあるWindowsでも同じ結果になります。

kuvivek@HOSTNAME ~
$ which python
/usr/bin/python

kuvivek@HOSTNAME ~
$ whereis python
python: /usr/bin/python /usr/bin/python3.4 /usr/lib/python2.7 /usr/lib/python3.4        /usr/include/python2.7 /usr/include/python3.4m /usr/share/man/man1/python.1.gz

kuvivek@HOSTNAME ~
$ which python3
/usr/bin/python3

kuvivek@HOSTNAME ~
$ command -v python
/usr/bin/python

kuvivek@HOSTNAME ~
$ type python
python is hashed (/usr/bin/python)

あなたがすでにPythonシェルにいるなら。どれでも試してみてください。注:これは代替方法です。最高のPythonicの方法ではありません。

>>>
>>> import os
>>> os.popen('which python').read()
'/usr/bin/python\n'
>>>
>>> os.popen('type python').read()
'python is /usr/bin/python\n'
>>>
>>> os.popen('command -v python').read()
'/usr/bin/python\n'
>>>
>>>
3
kvivek