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 python3gibt den korrekten vollständigen Binärpfad über zurück sys.executable. Möglicherweise verhält sich Ihre Betriebssystem- oder Python-Version etwas anders.
pythonund python3Befehlen 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 pythonBefehl. 2) command -v pythonBefehl 3) type pythonBefehl
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'
>>>
>>>
pythonaus der Shell eingeben. Wenn Sie mit einem explizit anderen Pfad beginnen (z. B. /opt/python/2.5/bin/python) oder python3diese 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 pythonausgeführten Shebang nicht zu funktionierenenv -i ./script. In diesem Fall wird das aktuelle Arbeitsverzeichnis zurückgegeben.