जवाबों:
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
। उस स्थिति में यह वर्तमान कार्यशील निर्देशिका को लौटाता है।