python - हिस्ट्री ऑफ़ प्रोग्रामिंग लैंग्वेजेज




मैं कैसे जांचूं कि पाइथन का कौन सा संस्करण मेरी स्क्रिप्ट चला रहा है? (11)

सबसे आसान तरीका

बस अपने टर्मिनल में पायथन टाइप करें और आप संस्करण को निम्न जैसा देख सकते हैं

desktop:~$ python
Python 2.7.6 (default, Jun 22 2015, 18:00:18) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

मैं कैसे जांच सकता हूं कि पाइथन इंटरप्रेटर का कौन सा संस्करण मेरी स्क्रिप्ट का अर्थ दे रहा है?


आपकी सबसे अच्छी शर्त शायद ऐसा कुछ है:

>>> import sys
>>> sys.version_info
(2, 6, 4, 'final', 0)
>>> if not sys.version_info[:2] == (2, 6):
...    print "Error, I need python 2.6"
... else:
...    from my_module import twoPointSixCode
>>> 

इसके अतिरिक्त, आप हमेशा अपने आयात को एक साधारण प्रयास में लपेट सकते हैं, जो वाक्यविन्यास त्रुटियों को पकड़ना चाहिए। और, @ हेक्की के बिंदु पर, यह कोड पायथन के पुराने संस्करणों के साथ संगत होगा:

>>> try:
...     from my_module import twoPointSixCode
... except Exception: 
...     print "can't import, probably because your python is too old!"
>>>

कमांड लाइन से (पूंजी 'वी' नोट करें):

python -V

यह 'मैन पायथन' में प्रलेखित है।


कुछ इस तरह रखो:

#!/usr/bin/env/python
import sys
if sys.version_info<(2,6,0):
  sys.stderr.write("You need python 2.6 or later to run this script\n")
  exit(1)

आपकी लिपि के शीर्ष पर।

ध्यान दें कि आपकी स्क्रिप्ट में और क्या है, इस पर निर्भर करता है कि लक्ष्य की तुलना में अजगर के पुराने संस्करण स्क्रिप्ट को लोड करने में सक्षम नहीं हो सकते हैं, इसलिए इस त्रुटि की रिपोर्ट करने के लिए पर्याप्त नहीं होगा। एक कामकाज के रूप में, आप उपरोक्त को एक स्क्रिप्ट में चला सकते हैं जो स्क्रिप्ट को अधिक आधुनिक कोड के साथ आयात करता है।


पायथन संस्करण की जांच करें: python -V या python --version या apt-cache policy python

आप यह देखने के लिए whereis python चला सकते हैं कि कितने संस्करण स्थापित हैं।


बस मस्ती के लिए, निम्नलिखित इसे साइप्थन 1.0-3.7b2, पायपी, ज्योथन और माइक्रोप्रिथॉन पर करने का एक तरीका है। आधुनिक कोड में ऐसा करने के तरीके की तुलना में यह जिज्ञासा से अधिक है। मैंने इसे http://stromberg.dnsalias.org/~strombrg/pythons/ हिस्से के रूप में लिखा है, जो एक बार में पाइथन के कई संस्करणों पर कोड के एक स्निपेट का परीक्षण करने के लिए एक स्क्रिप्ट है, ताकि आप आसानी से पाइथन के लिए महसूस कर सकें फीचर्स के संस्करणों के साथ विशेषताएं संगत हैं:

via_platform = 0
check_sys = 0
via_sys_version_info = 0
via_sys_version = 0
test_sys = 0
try:
    import platform
except (ImportError, NameError):
    # We have no platform module - try to get the info via the sys module
    check_sys = 1

if not check_sys:
    if hasattr(platform, "python_version"):
        via_platform = 1
    else:
        check_sys = 1

if check_sys:
    try:
        import sys
        test_sys = 1
    except (ImportError, NameError):
        # just let via_sys_version_info and via_sys_version remain False - we have no sys module
        pass

if test_sys:
    if hasattr(sys, "version_info"):
        via_sys_version_info = 1
    elif hasattr(sys, "version"):
        via_sys_version = 1
    else:
        # just let via_sys remain False
        pass

if via_platform:
    # This gives pretty good info, but is not available in older interpreters.  Also, micropython has a
    # platform module that does not really contain anything.
    print(platform.python_version())
elif via_sys_version_info:
    # This is compatible with some older interpreters, but does not give quite as much info.
    print("%s.%s.%s" % sys.version_info[:3])
elif via_sys_version:
    import string
    # This is compatible with some older interpreters, but does not give quite as much info.
    verbose_version = sys.version
    version_list = string.split(verbose_version)
    print(version_list[0])
else:
    print("unknown")

मुझे यह विधि कहीं मिल गई।

>>> from platform import python_version
>>> print python_version()
2.7.8

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

पायथन 2.4.3 (# 1, 11 जून 200 9, 14:09:37)

[जीसीसी 4.1.2 20080704 (रेड हैट 4.1.2-44)] linux2 पर

अधिक जानकारी के लिए "सहायता", "कॉपीराइट", "क्रेडिट" या "लाइसेंस" टाइप करें।


यहां एक छोटा कमांडलाइन संस्करण है जो सीधे बाहर निकलता है (स्क्रिप्ट और स्वचालित निष्पादन के लिए आसान):

python -c "print(__import__('sys').version)"

या सिर्फ प्रमुख, मामूली और सूक्ष्म:

python -c "print(__import__('sys').version_info[:1])" # (2,)
python -c "print(__import__('sys').version_info[:2])" # (2, 7)
python -c "print(__import__('sys').version_info[:3])" # (2, 7, 6)

सेठ की तरह, मुख्य स्क्रिप्ट sys.version_info जांच sys.version_info (लेकिन ध्यान दें कि यह 2.0 तक दिखाई नहीं दे रहा है, इसलिए यदि आप पुराने संस्करणों का समर्थन करना चाहते हैं तो आपको sys मॉड्यूल की एक और संस्करण प्रॉपर्टी sys.version_info होगी)।

लेकिन आपको अभी भी उस फ़ाइल में किसी भी पायथन भाषा सुविधाओं का उपयोग न करने की देखभाल करने की आवश्यकता है जो पुरानी पायथन संस्करणों में उपलब्ध नहीं है। उदाहरण के लिए, इसे पायथन 2.5 और बाद में अनुमति दी गई है:

try:
    pass
except:
    pass
finally:
    pass

लेकिन पुराने पायथन संस्करणों में काम नहीं करेगा, क्योंकि आप केवल कोशिश कर सकते हैं या आखिरकार कोशिश कर सकते हैं। तो पुराने पायथन संस्करणों के साथ संगतता के लिए आपको लिखना होगा:

try:
    try:
        pass
    except:
        pass
finally:
    pass

import sys
sys.version.split(' ')[0]

sys.version आपको जो चाहता है वह देता है, बस पहले नंबर चुनें :)





version