Risposte:
sys.executable
contiene il percorso completo dell'interprete Python attualmente in esecuzione.
import sys
print(sys.executable)
che ora è documentato qui
#!/usr/bin/env python3
restituirà il percorso binario completo corretto tramite sys.executable
. Forse la versione del tuo sistema operativo o Python si comporta in modo leggermente diverso.
python
e python3
comandi ed è stampato il file eseguibile corretto.
Basta notare un diverso modo di discutibile utilità, usando os.environ
:
import os
python_executable_path = os.environ['_']
per esempio
$ python -c "import os; print(os.environ['_'])"
/usr/bin/python
_
sia impostato dalla shell. Ma non è necessario impostarlo, quindi questo potrebbe dare la risposta sbagliata.
Ci sono alcuni modi alternativi per capire il which python
comando python attualmente usato in Linux: 1) . 2) command -v python
comando 3) type python
comando
Allo stesso modo su Windows con Cygwin risulterà lo stesso.
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 sei già nella shell di Python. Prova qualcuno di questi. Nota: questo è un modo alternativo. Non è il miglior modo pitonico.
>>>
>>> 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
dalla shell. Se inizi con un percorso esplicito diverso (ad esempio /opt/python/2.5/bin/python
), o usi python3
e poi esegui quei comandi di Python, tutti hanno prodotto risposte errate e questo non ha nulla a che fare con il non essere il modo più pitonico, è semplicemente sbagliato.
/usr/bin/env python
eseguito comeenv -i ./script
. In tal caso restituisce la directory di lavoro corrente.