উত্তর:
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
। সেক্ষেত্রে এটি বর্তমান ওয়ার্কিং ডিরেক্টরিটি প্রদান করে।