Yanıtlar:
sys.executable şu anda çalışan Python yorumlayıcısının tam yolunu içerir.
import sys
print(sys.executable)
şimdi burada belgeleniyor
#!/usr/bin/env python3ile doğru tam ikili yolu döndürür sys.executable. Belki işletim sisteminiz veya Python sürümünüz biraz farklı davranır.
pythonve python3komutları ile komut dosyası çağırdı ve doğru yürütülebilir yazdırılır.
Şunu kullanarak, sadece farklı bir sorgulanabilir faydaya dikkat edin os.environ:
import os
python_executable_path = os.environ['_']
Örneğin
$ python -c "import os; print(os.environ['_'])"
/usr/bin/python
_Kabuk tarafından belirlenmiş gibi görünüyor . Ancak ayarlanması gerekmez, bu yüzden bu yanlış cevap verebilir.
Linux'ta şu anda kullanılan python'u anlamanın birkaç alternatif yolu vardır: 1) which pythonkomutu. 2) command -v pythonkomut 3) type pythonkomut
Benzer şekilde Cygwin'li Windows'ta da aynı sonuç elde edilir.
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)
Zaten python kabuğundaysanız. Bunlardan birini deneyin. Not: Bu alternatif bir yoldur. En iyi pitonik yol değil.
>>>
>>> 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. Belirgin bir farklı yolla (örneğin /opt/python/2.5/bin/python) başlarsanız veya python3bu python komutlarını kullanır ve çalıştırırsanız, hepsi yanlış cevaplar üretti ve bunun en pitonik yol olmamasıyla hiçbir ilgisi yok, sadece yanlış.
/usr/bin/env pythonolarak idam bir shebang ile çalışmak gibi görünmüyorenv -i ./script. Bu durumda geçerli çalışma dizinini döndürür.