পাইথন ইন্টারপ্রেটারের পুরো পথটি সন্ধান করবেন?


400

বর্তমানে চালিত পাইথন স্ক্রিপ্টের মধ্যে থেকে বর্তমানে চলমান পাইথন ইন্টারপ্রেটারের পুরো পথটি কীভাবে খুঁজে পাব?

উত্তর:


606

sys.executable বর্তমানে চলমান পাইথন ইন্টারপ্রেটারের পুরো পথ রয়েছে।

import sys

print(sys.executable)

যা এখন এখানে নথিভুক্ত করা হয়


1
এটি কোনও /usr/bin/env pythonচালানো শেবাং সহ স্ক্রিপ্ট থেকে কাজ করবে বলে মনে হয় না env -i ./script। সেক্ষেত্রে এটি বর্তমান ওয়ার্কিং ডিরেক্টরিটি প্রদান করে।
জন ফ্রিম্যান

2
@ জনফ্রিমন: আমি এটি একটি জিএনইউ / লিনাক্স বক্স ডাব্লু / জিএনইউ কোর্টিলস ৮.৪ (এনভি) এবং পাইথন ৩.৪.২ এ চেষ্টা করেছি #!/usr/bin/env python3এর মাধ্যমে সঠিক সম্পূর্ণ বাইনারি পাথ ফিরে আসবে sys.executable। সম্ভবত আপনার ওএস বা পাইথন সংস্করণটি কিছুটা আলাদা আচরণ করে।
কেভিনার্পে

25
দ্রষ্টব্য যে পাইথন কিছু প্রয়োগে এম্বেড থাকলে এটি পাইথন ইন্টারপ্রেটারের নাম ফিরিয়ে দেবে না।
mic_e

1
আমি পাইথন 2 এবং পাইথন 3 এর জন্য শেবাং দিয়ে এটি চেষ্টা করেছি এবং এটি সঠিক নির্বাহযোগ্য প্রিন্ট করেছে। আমি কোনও শেবাং ছাড়াই চেষ্টা করেছি এবং স্ক্রিপ্টটিকে ডেকে আনি pythonএবং python3কমান্ড দিয়ে এবং এটি সঠিক সম্পাদনযোগ্য প্রিন্ট করেছে।
ডেভিড বাউকুম

8

প্রশ্নবিদ্ধ উপযোগিতার এক অন্যরকম উপায় উল্লেখ করে, ব্যবহার করে os.environ:

import os
python_executable_path = os.environ['_']

যেমন

$ python -c "import os; print(os.environ['_'])"
/usr/bin/python

2
অকেজো তবে মজাদার :) (সম্ভবত পোর্টেবলও নয়)
ইউডোকোস

2
এটি _শেল দ্বারা সেট করা হয়েছে বলে মনে হয়। তবে এটি সেট করার দরকার নেই, সুতরাং এটি ভুল উত্তর দিতে পারে।
vy32

2
এফওয়াইআই, যখন একটি বৃহত্তর নোটবুক থাকে, এটি কার্নেল প্রবর্তক স্ক্রিপ্টের পথ দেয়।
মিঃ ফুজ

2

লিনাক্সে বর্তমানে ব্যবহৃত অজগরটি বের করার কয়েকটি বিকল্প উপায় রয়েছে: 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'
>>>
>>>

5
"বর্তমানে কার্যকর করা পাইথন স্ক্রিপ্টের মধ্যে থেকে" ওপি
নোডাকাই

3
আপনার "ইতিমধ্যে পাইথন শেলের মধ্যে" উদাহরণগুলি, সমস্ত অনুমান করে যে শেল pythonথেকে টাইপ করলে পাইথন শেলটি আপনি যা পেয়েছেন তা হ'ল । আপনি যদি স্পষ্টভাবে পৃথক পৃথক পাথ (উদাহরণস্বরূপ /opt/python/2.5/bin/python) দিয়ে শুরু করেন , বা ব্যবহার করেন python3এবং তারপরে সেই অজগর কমান্ডগুলি চালনা করেন তবে এগুলির সমস্তই সঠিক উত্তর উত্পন্ন করেছিল এবং সর্বাধিক পাইথোনিক উপায় না হওয়ার সাথে এর কোনও যোগসূত্র নেই, এটি কেবল সাধারণ ভুল।
অ্যান্থন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.