Antworten:
sys.executable
enthält den vollständigen Pfad des aktuell ausgeführten Python-Interpreters.
import sys
print(sys.executable)
was jetzt hier dokumentiert ist
#!/usr/bin/env python3
gibt den korrekten vollständigen Binärpfad über zurück sys.executable
. Möglicherweise verhält sich Ihre Betriebssystem- oder Python-Version etwas anders.
python
und python3
Befehlen und es gedruckt , um die richtige ausführbare Datei.
Ich stelle nur eine andere Art fragwürdiger Nützlichkeit fest os.environ
:
import os
python_executable_path = os.environ['_']
z.B
$ python -c "import os; print(os.environ['_'])"
/usr/bin/python
_
von der Shell festgelegt wird. Es muss jedoch nicht eingestellt werden, sodass dies die falsche Antwort geben kann.
Es gibt einige alternative Möglichkeiten, um herauszufinden, welche Python derzeit unter Linux verwendet wird: 1) which python
Befehl. 2) command -v python
Befehl 3) type python
Befehl
In ähnlicher Weise wird unter Windows mit Cygwin auch das gleiche Ergebnis erzielt.
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)
Wenn Sie sich bereits in der Python-Shell befinden. Probieren Sie eines davon aus. Hinweis: Dies ist eine alternative Methode. Nicht der beste pythonische Weg.
>>>
>>> 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
aus der Shell eingeben. Wenn Sie mit einem explizit anderen Pfad beginnen (z. B. /opt/python/2.5/bin/python
) oder python3
diese Python-Befehle verwenden und dann ausführen, haben alle falsche Antworten hervorgebracht, und das hat nichts damit zu tun, dass Sie nicht die pythonischste Methode sind. Es ist einfach falsch.
/usr/bin/env python
ausgeführten Shebang nicht zu funktionierenenv -i ./script
. In diesem Fall wird das aktuelle Arbeitsverzeichnis zurückgegeben.