जवाबों:
sys.executable वर्तमान में चल रहे पायथन दुभाषिया का पूरा रास्ता शामिल है।
import sys
print(sys.executable)
जो अब यहाँ प्रलेखित है
#!/usr/bin/env python3के माध्यम से सही पूर्ण बाइनरी पथ लौटाएगा sys.executable। शायद आपका ओएस या पायथन संस्करण थोड़ा अलग तरीके से व्यवहार करता है।
pythonऔर python3आदेशों और यह सही निष्पादन छपी।
बस का उपयोग कर, संदिग्ध उपयोगिता का एक अलग तरीका नोट कर रहा है os.environ:
import os
python_executable_path = os.environ['_']
जैसे
$ python -c "import os; print(os.environ['_'])"
/usr/bin/python
_शेल द्वारा सेट किया गया है। लेकिन इसे सेट करने की आवश्यकता नहीं है, इसलिए यह गलत उत्तर दे सकता है।
लिनक्स में वर्तमान में प्रयुक्त अजगर का पता लगाने के लिए कुछ वैकल्पिक तरीके हैं: 1) which pythonकमांड। 2) command -v pythonकमांड 3) type pythonकमांड
इसी तरह विंडोज पर सिग्विन के साथ भी परिणाम होगा।
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)
यदि आप पहले से ही अजगर के खोल में हैं। इनमें से किसी को भी आजमाएं। नोट: यह एक वैकल्पिक तरीका है। सबसे अच्छा पायथोनिक तरीका नहीं है।
>>>
>>> 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शेल से टाइप करने पर मिलता है । यदि आप एक स्पष्ट भिन्न पथ (जैसे /opt/python/2.5/bin/python) से शुरू करते हैं , या उपयोग करते हैं python3और फिर उन अजगर कमांडों को चलाते हैं, तो उन सभी ने गलत उत्तर दिए हैं और इसका सबसे अधिक पायथोनिक तरीका नहीं होने से कोई लेना-देना नहीं है, यह सिर्फ सादा गलत है।
/usr/bin/env pythonनिष्पादित किया गया हैenv -i ./script। उस स्थिति में यह वर्तमान कार्यशील निर्देशिका को लौटाता है।