Bagaimana cara menemukan path lengkap interpreter Python yang sedang berjalan dari dalam skrip Python yang saat ini mengeksekusi?
402
sys.executable
berisi path lengkap dari interpreter Python yang sedang berjalan.
import sys
print(sys.executable)
yang sekarang didokumentasikan di sini
/usr/bin/env python
dieksekusi sebagaienv -i ./script
. Dalam hal ini mengembalikan direktori kerja saat ini.#!/usr/bin/env python3
akan mengembalikan jalur biner penuh yang benar melaluisys.executable
. Mungkin versi OS atau Python Anda berperilaku sedikit berbeda.python
danpython3
perintah dan itu mencetak executable yang benar.Hanya memperhatikan cara lain dari kegunaan yang dipertanyakan, menggunakan
os.environ
:misalnya
sumber
_
diatur oleh shell. Tapi itu tidak perlu diatur, jadi ini bisa memberikan jawaban yang salah.Ada beberapa cara alternatif untuk mengetahui python yang saat ini digunakan di Linux adalah: 1)
which python
perintah. 2)command -v python
perintah 3)type python
perintahDemikian pula pada Windows dengan Cygwin juga akan menghasilkan hal yang sama.
Jika Anda sudah berada di shell python. Coba salah satu dari ini. Catatan: Ini adalah cara alternatif. Bukan cara pythonic terbaik.
sumber
python
dari shell. Jika Anda mulai dengan jalur berbeda yang eksplisit (misalnya/opt/python/2.5/bin/python
), atau menggunakanpython3
dan kemudian menjalankan perintah python itu, semuanya menghasilkan jawaban yang salah dan itu tidak ada hubungannya dengan tidak menjadi cara yang paling pythonic, itu jelas salah.