Respostas:
sys.executable
contém o caminho completo do interpretador Python em execução no momento.
import sys
print(sys.executable)
que agora está documentado aqui
#!/usr/bin/env python3
retornará o caminho binário completo correto via sys.executable
. Talvez sua versão do sistema operacional ou Python se comporte de maneira um pouco diferente.
python
e python3
comandos e imprimiu o executável correto.
Apenas observando uma maneira diferente de utilidade questionável, usando os.environ
:
import os
python_executable_path = os.environ['_']
por exemplo
$ python -c "import os; print(os.environ['_'])"
/usr/bin/python
_
é definido pelo shell. Mas não precisa ser definido, portanto, isso pode dar a resposta errada.
Existem algumas maneiras alternativas de descobrir que o python atualmente usado no Linux é: 1) which python
comando. 2) command -v python
comando 3) type python
comando
Da mesma forma No Windows com Cygwin também resultará o mesmo.
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)
Se você já está no shell python. Tente qualquer um desses. Nota: Esta é uma maneira alternativa. Não é o melhor caminho pitônico.
>>>
>>> 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
no shell. Se você começar com um caminho diferente explícito (por exemplo /opt/python/2.5/bin/python
), ou usar python3
e, em seguida, executar esses comandos python, todos eles produziram respostas incorretas e isso não tem nada a ver com não ser o caminho mais pitônico, isso é completamente errado.
/usr/bin/env python
executado comoenv -i ./script
. Nesse caso, ele retorna o diretório de trabalho atual.