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 python3
ile 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.
python
ve python3
komutları 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 python
komutu. 2) command -v python
komut 3) type python
komut
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 python3
bu 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 python
olarak idam bir shebang ile çalışmak gibi görünmüyorenv -i ./script
. Bu durumda geçerli çalışma dizinini döndürür.