Réponses:
sys.executable contient le chemin complet de l'interpréteur Python en cours d'exécution.
import sys
print(sys.executable)qui est maintenant documenté ici
#!/usr/bin/env python3renverra le chemin binaire complet correct via sys.executable. Peut-être que votre version OS ou Python se comporte légèrement différemment.
                    pythonet les python3commandes et l'exécutable correct imprimé.
                    Notant simplement une manière différente d’utilité douteuse, en utilisant os.environ:
import os
python_executable_path = os.environ['_']par exemple
$ python -c "import os; print(os.environ['_'])"
/usr/bin/python_soit réglé par le shell. Mais cela n'a pas besoin d'être réglé, donc cela pourrait donner la mauvaise réponse.
                    Il existe plusieurs façons alternatives de comprendre le python actuellement utilisé sous Linux: 1) which pythoncommande. 2) command -v pythoncommande 3) type pythoncommande
De même, sous Windows avec Cygwin, le résultat sera également le même.
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)Si vous êtes déjà dans le shell python. Essayez n'importe lequel d'entre eux. Remarque: Il s'agit d'une autre méthode. Pas la meilleure façon pythonique.
>>>
>>> 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'
>>>
>>>pythonpartir du shell. Si vous commencez avec un chemin différent explicite (par exemple /opt/python/2.5/bin/python), ou utilisez python3puis exécutez ces commandes python, toutes ont produit des réponses incorrectes et cela n'a rien à voir avec le fait de ne pas être la manière la plus pythonique, c'est tout simplement faux.
                    
/usr/bin/env pythonexécuté en tant queenv -i ./script. Dans ce cas, il renvoie le répertoire de travail actuel.