Jak znaleźć pełną ścieżkę aktualnie działającego interpretera Pythona w ramach aktualnie wykonywanego skryptu Python?
402
sys.executable
zawiera pełną ścieżkę aktualnie działającego interpretera Pythona.
import sys
print(sys.executable)
co jest teraz udokumentowane tutaj
/usr/bin/env python
wykonanym jakoenv -i ./script
. W takim przypadku zwraca bieżący katalog roboczy.#!/usr/bin/env python3
zwróci poprawną pełną ścieżkę binarną przezsys.executable
. Być może wersja systemu operacyjnego lub Python zachowuje się nieco inaczej.python
ipython3
poleceń i drukowane prawidłowy plik wykonywalny.Zwracając uwagę na inny sposób wątpliwej przydatności, wykorzystując
os.environ
:na przykład
źródło
_
to, że jest ustawiony przez powłokę. Ale nie trzeba go ustawiać, więc może to dać złą odpowiedź.Istnieje kilka alternatywnych sposobów na znalezienie aktualnie używanego pytona w Linuksie: 1)
which python
. 2)command -v python
polecenie 3)type python
poleceniePodobnie w systemie Windows z Cygwin również spowoduje to samo.
Jeśli jesteś już w powłoce pytona. Wypróbuj dowolną z nich. Uwaga: jest to alternatywny sposób. Nie najlepszy sposób na python.
źródło
python
z powłoki. Jeśli zaczniesz od wyraźnej innej ścieżki (np./opt/python/2.5/bin/python
) Lub użyjesz,python3
a następnie uruchomisz te polecenia w języku Python, wszystkie wygenerowały niepoprawne odpowiedzi i nie ma to nic wspólnego z tym, że nie jest to najbardziej pythonowy sposób, to po prostu źle.