पायथन का मेरे पास क्या संस्करण है?


73

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

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


4
इसके अलावा, एक त्वरित तरीका क्या अजगर बायनेरिज़ स्थापित कर रहे हैं देखने के लिए है:ls /usr/bin | grep python
तेजस काले

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

जवाबों:


86

आप 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

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


मुझे निम्नलिखित मिल रहा है, और मुझे यकीन नहीं है कि इसका क्या अर्थ है: readlink: extra operand '/usr/bin/python2.7' Try 'readlink --help' for more information.
hello_there_andy

मुझे लगता है कि python -vसंस्करण को वापस कर देगा और इसे रूट के रूप में निष्पादित करेगा। यह चीजों की एक लंबी सूची को मुद्रित करता है, लेकिन शीर्ष पर यह कहा गया है installing zipimport hookऔर अब ऐसा लगता है जैसे कि मैं एक कार्यक्रम में हूं जिसका मुझे कोई पता नहीं है कि कैसे बाहर निकलना है, अकेले स्थापना रद्द करें ?? क्या आप यहाँ मेरी मदद कर सकते हैं
बग

2
@Anthony -Vसंस्करण के लिए ध्वज केस-संवेदी है। python -vआपको पायथन कंसोल में रखें जिसमें क्रिया संदेश चालू थे। नियंत्रण + डी बाहर निकलने के लिए। या लिखो exit()और रिटर्न दबाओ।
ओली

@hello_there_andy मुझे लगता है कि आपने कमांड को कॉपी करते समय एक टाइपो बनाया था।
वंदारेड

63

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

python -V

या

python --version

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

उदाहरण:

python --help

मैनुअल / manpages ऐसे CLI से ज्यादातर जिसके द्वारा प्रदर्शित किया जा सकता के लिए भी उपलब्ध 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.x आप क्या चला रहे हैं।


2
यह ध्यान देने योग्य है, जैसा कि @Florian Diesch ने सभी दृष्टिकोणों से नीचे बताया है कि आपके पास "पायथन" के कई संस्करण हैं। डिफ़ॉल्ट "पाइथन" कॉल पाइथन 2.7 की स्थापना की ओर इशारा करता है, हालाँकि ubuntu 14.04, अजगर 3.0 के साथ भी आता है।
मिच


8

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

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "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 linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

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

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 देता है

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


"यदि आपके पास 2 या अधिक अजगर 3.Xx संस्करण हैं, तो आप केवल नवीनतम ही देखेंगे।" इसके बजाय यह नहीं दिखाएगा कि PATHपर्यावरण चर में पहली बार सूचीबद्ध निर्देशिका में से कोई भी एक है ? क्यों चल रहा है python3हमेशा python3 के उच्चतम (उप) संस्करण को चलाया जाएगा जो स्थापित है? या, व्यवहार में, यह /usr/bin/python3प्रतीकात्मक लिंक को इंगित करने वाले किसी भी संस्करण को नहीं दिखाएगा , जिसे नवीनतम की आवश्यकता नहीं है?
एलियाह कगन

@ एलियाह कोई विचार नहीं है, लेकिन कुछ कार्यक्रम इसे वहां से और दूसरों से लेते हैं /usr/bin...
टिम

2
खैर, जब यह वास्तव में अजगर कार्यक्रमों को चलाने की बात आती है, तो वे कैसे चलाए जाते हैं, इस पर निर्भर करते हुए, हैशबैंग लाइन का उपयोग यह निर्धारित करने के लिए किया जा सकता है कि कौन सा अजगर दुभाषिया के रूप में कार्य करता है ( विवरण ; जो भी व्याख्या की जा सकती है उसे खोजने के लिए हैशबैंग लाइनों का उपयोगenv नोट करें। -पाइथन लिपियों में सामान्य रूप से संदर्भित )। मुझे यकीन नहीं है कि अगर आप कुछ कार्यक्रमों और दूसरों के बीच मतभेदों से मतलब रखते हैं।
एलियाह कगन

नहीं, एक उपयोगकर्ता ने कहा कि निष्क्रिय 3.4.0 के साथ चला और 3.4.1 के साथ कमांड लाइन ...
टिम

5

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

import platform

print(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')

3
मुझे लगता है कि इसका उपयोग करना अधिक आम है sys.versionया sys.version_info
मैट नॉर्डहॉफ

5

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

$ compgen -c python
python2.7
python3.4m
python3.4
python3m
python
python3
python2

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

$ for p in $(compgen -c python); do printf "%-16s" $p; $p --version; done
python2.7      Python 2.7.6
python3.4m     Python 3.4.3
python3.4      Python 3.4.3
python3m       Python 3.4.3
python         Python 2.7.6
python3        Python 3.4.3
python2        Python 2.7.6

अपडेट करें: python*-config

मैंने देखा कि python*-configकार्यक्रम --versionध्वज का समर्थन नहीं करते हैं । उदाहरण के लिए:

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

grep -vउदाहरण के लिए, आप उन्हें फ़िल्टर कर सकते हैं :

compgen -c python | grep -v -- '-config$'

यह शीर्ष उत्तर होना चाहिए, मुझे लगता है।
सोलोमन विमल

2

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

लिखना

python

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

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

3.x के लिए, लिखें:

python3

मेरे मामले में, ऐसा प्रतीत होता है:

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

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

 exit()

1
  • शेल टर्मिनल में

    $ which -a pythonसभी को सूचीबद्ध करता है python

    $ which -a python2.7सभी को सूचीबद्ध करता है python2.7

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

  • अजगर लिपि में जाँच करें

यहाँ ipython शेल में एक इलस्ट्रेशन है:

In [1]: import sys

In [2]: sys.version
2.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_info
sys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0)

In [4]: sys.version_info >= (2,7)
Out[4]: True

In [5]: sys.version_info >= (3,)
Out[5]: False

मुझे लगता है कि python -vसंस्करण को वापस कर देगा और इसे रूट के रूप में निष्पादित करेगा। यह चीजों की एक लंबी सूची को मुद्रित करता है, लेकिन शीर्ष पर यह कहा गया है installing zipimport hookऔर अब ऐसा लगता है जैसे कि मैं एक कार्यक्रम में हूं जिसका मुझे कोई पता नहीं है कि कैसे बाहर निकलना है, अकेले स्थापना रद्द करें ?? क्या आप यहाँ मेरी मदद कर सकते हैं
बग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.