Respuestas:
sys.executable
contiene la ruta completa del intérprete de Python actualmente en ejecución.
import sys
print(sys.executable)
que ahora está documentado aquí
#!/usr/bin/env python3
devolverá la ruta binaria completa correcta a través de sys.executable
. Quizás su sistema operativo o versión de Python se comporta de manera ligeramente diferente.
python
y python3
comandos y se imprime el ejecutable correcto.
Simplemente observando una forma diferente de utilidad cuestionable, usando os.environ
:
import os
python_executable_path = os.environ['_']
p.ej
$ python -c "import os; print(os.environ['_'])"
/usr/bin/python
_
lo establece el shell. Pero no es necesario establecerlo, por lo que esto podría dar la respuesta incorrecta.
Hay algunas formas alternativas de descubrir que el python utilizado actualmente en Linux es: 1) which python
comando. 2) command -v python
comando 3) type python
comando
Del mismo modo, en Windows con Cygwin también resultará igual.
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 ya estás en el shell de Python. Prueba cualquiera de estos. Nota: esta es una forma alternativa. No es la mejor manera pitónica.
>>>
>>> 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'
>>>
>>>
python
desde el shell. Si comienza con una ruta diferente explícita (p /opt/python/2.5/bin/python
. Ej. ), O usa python3
y luego ejecuta esos comandos de Python, todos ellos produjeron respuestas incorrectas y eso no tiene nada que ver con no ser la forma más pitónica, simplemente está mal.
/usr/bin/env python
ejecutado comoenv -i ./script
. En ese caso, devuelve el directorio de trabajo actual.