Find full path of the Python interpreter?


How do I find the full path of the currently running Python interpreter from within the currently executing Python script?

Asked By: vy32



sys.executable contains full path of the currently running Python interpreter.

import sys


which is now documented here

Answered By: Imran

Just noting a different way of questionable usefulness, using os.environ:

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


$ python -c "import os; print(os.environ['_'])"
Answered By: famousgarkin

There are a few alternate ways to figure out the currently used python in Linux is:

  1. which python command.
  2. command -v python command
  3. type python command

Similarly On Windows with Cygwin will also result the same.

kuvivek@HOSTNAME ~
$ which 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

kuvivek@HOSTNAME ~
$ command -v python

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

If you are already in the python shell. Try anyone of these.
Note: This is an alternate way. Not the best pythonic way.

>>> import os
>>> os.popen('which python').read()
>>> os.popen('type python').read()
'python is /usr/bin/pythonn'
>>> os.popen('command -v python').read()

If you are not sure of the actual path of the python command and is available in your system, Use the following command.

pi@osboxes:~ $ which python
pi@osboxes:~ $ readlink -f $(which python)
pi@osboxes:~ $ 
pi@osboxes:~ $ which python3
pi@osboxes:~ $ 
pi@osboxes:~ $ readlink -f $(which python3)
pi@osboxes:~ $ 
Answered By: kvivek
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.