मेरे पास अजगर का कौन सा संस्करण है?

मैं कैसे पता लगा सकता हूं कि मेरे पास पायथन के कौन से संस्करण हैं?

मैं उबंटू 14.04 (भरोसेमंद तहर) का उपयोग कर रहा हूं ।

आप उपयोग कर सकते हैं python -V (एट अल।) आपको पायथन का संस्करण दिखाने के लिए कि python आदेश को हल करता है । अगर आपको बस इतना ही चाहिए, तो आपका काम हो गया । लेकिन आपके सिस्टम में पायथन के हर संस्करण को देखने के लिए थोड़ा अधिक लगता है ।

उबंटू में हम संकल्प की जांच कर सकते हैं readlink -f $(which python). 14.04 में डिफ़ॉल्ट मामलों में यह बस इंगित करेगा /usr/bin/python2.7.

हम पायथन के उस संस्करण के संस्करण को दिखाने के लिए इसे चेन कर सकते हैं:

$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'/usr/bin/python2.7: Python 2.7.6

लेकिन यह अभी भी केवल हमें बता रहा है कि हमारा वर्तमान क्या है python संकल्प है। अगर हम वर्चुअलएन्व (एक सामान्य पायथन स्टैक प्रबंधन प्रणाली)में थे python एक अलग संस्करण के लिए हल हो सकता है:

$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'/home/oli/venv/bin/python: Python 2.7.4

यह वास्तविक आउटपुट है ।

तथ्य यह है कि आपके सिस्टम के चारों ओर गुप्त पाइथन के सैकड़ों विभिन्न संस्करण हो सकते हैं, या तो उन पथों पर जो प्रासंगिक रूप से जोड़े जाते हैं, या विभिन्न बाइनरी नामों (जैसे) के तहत रहते हैं python3).

अगर हम मानते हैं कि एक पायथन बाइनरी हमेशा कहा जाने वाला है python<something> और एक बाइनरी फ़ाइल हो, हम केवल उन मानदंडों से मेल खाने वाली फ़ाइलों के लिए पूरे सिस्टम को खोज सकते हैं:

$ sudo find / -type f -executable -iname 'python*' -exec file -i '{}' \; | awk -F: '/x-executable; charset=binary/ {print $1}' | xargs readlink -f | sort -u | xargs -I % sh -c 'echo -n "%: "; % -V'/home/oli/venv/bin/python: Python 2.7.4/media/ned/websites/venvold/bin/python: Python 2.7.4/srv/chroot/precise_i386/usr/bin/python2.7: Python 2.7.3/srv/chroot/trusty_i386/usr/bin/python2.7: Python 2.7.6/srv/chroot/trusty_i386/usr/bin/python3.4: Python 3.4.0/srv/chroot/trusty_i386/usr/bin/python3.4m: Python 3.4.0/usr/bin/python2.7: Python 2.7.6/usr/bin/python2.7-dbg: Python 2.7.6/usr/bin/python3.4: Python 3.4.0/usr/bin/python3.4dm: Python 3.4.0/usr/bin/python3.4m: Python 3.4.0/web/venvold/bin/python: Python 2.7.4

यह स्पष्ट रूप से एक बहुत ही घृणित आदेश है लेकिन यह फिर से वास्तविक आउटपुट है और ऐसा लगता है कि इसने काफी गहन काम किया है ।

टर्मिनल में निम्नलिखित टाइप करें (Ctrl+Alt+T):

python -V

या

python --version

आप टर्मिनल में कई कमांड के लिए विकल्पों/मापदंडों की एक सूची पा सकते हैं, जिसके बाद कमांड टाइप करके -- मदद

उदाहरण:

python --help

ऐसे अधिकांश सीएलआई के लिए मैनुअल/मैनपेज भी उपलब्ध हैं जिन्हें निम्न द्वारा प्रदर्शित किया जा सकता है man <command> (से: man python)

से man python:

COMMAND LINE OPTIONS        -V ,  --version              Prints the Python version number of the executable and exits.

वहाँ भी है python3 कई मशीनों पर स्थापित, तो आप कर सकते हैं:

python3 --version

क्या अजगर 3 पता लगाने के लिए । एक्स आप चल रहे हैं ।

python --version

और

python2 --version

पायथन 2 का संस्करण दिखाएं।x,

python3 --version

पायथन 3 का स्थापित संस्करण । x

जब आप दौड़ते हैं python टर्मिनल में, यह इस तरह उत्पादन का उत्पादन करेगा:

Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> 

पहली पंक्ति देखें - Python 2.7.6.

भी चलाते हैं python3. मेरे पास 3.4.1 है

Python 3.4.1 (default, Jul 31 2014, 12:46:17) [GCC 4.8.2] on linuxType "help", "copyright", "credits" or "license" for more information.>>>

हालाँकि, यह आपको उन सभी को नहीं दिखाएगा । यदि आपके पास 2 या अधिक पायथन 3 है । एक्स संस्करण, आप केवल नवीनतम देखेंगे।

डिफ़ॉल्ट रूप से 14.04 पर, आपके पास 2.7.6 और 3.4.0 है । जैसा कि आप देख सकते हैं, मैंने 3.4.1 पर अपडेट किया है । मुझे पता है कि मेरे पास अभी भी 3.4.0 है क्योंकि जब मैं जाता हूं /usr/bin मैं देख रहा हूँ python3.4, और अगर मैं दौड़ता हूं /usr/bin/python3.4 कमांड लाइन में, मुझे 3.4.0 मिलता है, और चल रहा है /usr/local/bin/python3.4 मुझे देता है 3.4.1

मेरे सर्वनाम वह / वह हैं

यदि आप पायथन के सभी संस्करणों को कमांड के रूप में उपलब्ध देखना चाहते हैं, तो चलाएं compgen -c python. जैसे:

$ compgen -c python | sort -upythonpython2python2.7python3python3.4python3.4mpython3m

यदि आप उपरोक्त में से प्रत्येक का संस्करण प्राप्त करना चाहते हैं:

compgen -c python | sort -u | grep -v -- '-config$' | while read -r p; do     printf "%-14s  " "$p"     "$p" --versiondone
python         Python 2.7.6python2        Python 2.7.6python2.7      Python 2.7.6python3        Python 3.4.3python3.4      Python 3.4.3python3.4m     Python 3.4.3python3m       Python 3.4.3

नोट: मैं बाहर फ़िल्टर कर रहा हूँ python*-config के साथ कार्यक्रम grep -v चूंकि वे समर्थन नहीं करते हैं --version झंडा। उदाहरण के लिए:

$ python3-config --versionUsage: /usr/bin/python3-config --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir

आप कोड से ही पायथन संस्करण की जांच कर सकते हैं platform मानक पुस्तकालय से मॉड्यूल। दो कार्य हैं: platform.python_version() (रिटर्न स्ट्रिंग) और platform.python_version_tuple() (रिटर्न टपल)। स्क्रिप्ट:

import platformprint(platform.python_version())print(platform.python_version_tuple())

चल रहा है:

$ python test.py 3.4.1('3', '4', '1')$ python2.7 test.py 2.7.8('2', '7', '8')

आसानी से, टर्मिनल खोलें और निम्न कार्य करें:

लिखो

python

अपने 2 को सत्यापित करने के लिए । एक्स संस्करणमेरे मामले में, यह दिखाई देगा:

Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2Type "help", "copyright", "credits" or "license" for more information.

3 के लिए । एक्स, लिखें:

python3

मेरे मामले में, यह प्रकट होता है:

Python 3.4.0 (default, Apr 11 2014, 13:05:11) [GCC 4.8.2] on linuxType "help", "copyright", "credits" or "license" for more information.

दोनों मामलों के लिए, पायथन शेल से बाहर निकलने के लिए, लिखें:

 exit()
  • शेल टर्मिनल में

    $ which -a python सूची आपके सभी python.

    $ which -a python2.7 सूची आपके सभी python2.7.

    $ /usr/bin/python -V के संस्करण के बारे में जानकारी देता है /usr/bin/python.

  • पायथन स्क्रिप्ट में जाँच करें

यहाँ आईपीथॉन शेल में एक इलस्ट्रेशन है:

In [1]: import sysIn [2]: sys.version2.7.11 |Anaconda 2.5.0 (64-bit)| (default, Dec  6 2015, 18:08:32) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]In [3]: sys.version_infosys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0)In [4]: sys.version_info >= (2,7)Out[4]: TrueIn [5]: sys.version_info >= (3,)Out[5]: False

इसके अलावा, यह देखने का एक त्वरित तरीका है कि पायथन बायनेरिज़ क्या स्थापित हैं : एलएस /यूएसआर/बिन | ग्रेप पायथन

@ तेजस्केल एलएस /यूएसआर/बिन/पायथन* (या एलएस /यूएसआर/बिन/*पायथन* चलाने के लिए बेहतर है यदि आप वास्तव में पायथन के साथ फाइलें चाहते हैं कहीं भी नाम में) । इस तरह, एलएस अभी भी एक टर्मिनल के लिए अपने आउटपुट को प्रारूपित करता है (और आपको कई कॉलम मिलते हैं और, उबंटू में डिफ़ॉल्ट एलएस उपनाम के साथ, रंगीकरण) ।