මගේ ස්ක්‍රිප්ට් එක ක්‍රියාත්මක කරන්නේ පයිතන්හි කුමන අනුවාදයද?


1211

මගේ පිටපත අර්ථ නිරූපණය කරන්නේ පයිතන් පරිවර්ථකයාගේ කුමන අනුවාදයදැයි පරීක්ෂා කරන්නේ කෙසේද?


1
වත්මන් නූල් යනු පයිතන් වැඩසටහන / ස්ක්‍රිප්ට් එකකින් පයිතන් අනුවාදය පරීක්ෂා කිරීමයි. ඔබේ පරිගණකයේ විධාන රේඛාවෙන් ස්ථාපනය කර ඇති පයිතන් පරිවර්තකයේ අනුවාදය පරීක්ෂා කිරීමට ඔබ බලාපොරොත්තු වන්නේ නම් කරුණාකර පහත දැක්වෙන පෝස්ටය වෙත යොමු වන්න - මා විසින් ස්ථාපනය කර ඇති පයිතන් අනුවාදය කුමක්ද?
ආර්බීටී

3
පයිතන් 3 සහ 2 වෙන් කිරීම සඳහා විනෝදජනක ක්‍රමයක් මෙන්න ...python_version = int(str(range(3))[-2])
ක්‍රිස්_රෑන්ඩ්ස්

BRBT: විධාන රේඛාවෙන් එක් පේළියක් පරීක්ෂා කිරීම සඳහා, මගේ පිළිතුර බලන්න .
smci

Answers:


1406

මෙම තොරතුරු sys මොඩියුලයේ sys.version string හි ඇත :

>>> import sys

කියවිය හැකි මානව:

>>> print(sys.version)  # parentheses necessary in python 3.       
2.5.2 (r252:60911, Jul 31 2008, 17:28:52) 
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)]

වැඩිදුර සැකසීම සඳහා:

>>> sys.version_info
(2, 5, 2, 'final', 0)
# or
>>> sys.hexversion
34014192

පයිතන් පරිවර්තකයේ අවම අනුවාද අවශ්‍යතාවයකින් ස්ක්‍රිප්ට් එකක් ක්‍රියාත්මක වන බව සහතික කිරීම සඳහා මෙය ඔබේ කේතයට එක් කරන්න:

assert sys.version_info >= (2, 5)

මෙය ප්‍රධාන හා සුළු අනුවාද තොරතුරු සංසන්දනය කරයි. ක්ෂුද්ර (= එක් කරන්න 0, 1(=, ආදිය) සහ පවා releaselevel 'alpha', 'final'ඔබ කැමති ලෙස tuple කිරීමට, ආදිය). කෙසේ වෙතත්, කිසියම් අංගයක් තිබේදැයි පරීක්ෂා කිරීම "තාරාවා" කිරීම වඩා හොඳ බව සලකන්න, එසේ නොවුවහොත්, වැඩ කිරීම (හෝ ඇප ලබා දීම). සමහර විට විශේෂාංග නව නිකුතුවලදී වෙනත් ඒවා මගින් ප්‍රතිස්ථාපනය වේ.


39
එය ඇත්ත වශයෙන්ම මුද්‍රණය සඳහා වන වාක්‍ය ඛණ්ඩයයි. අනුවාදය පරීක්ෂා කිරීම සඳහා නොවේ. මම එය මගේ පයිතන් 2 සහ 3 ස්ක්‍රිප්ට් වල භාවිතා කරමි:PY3 = sys.version_info[0] == 3
gcb

5
PY2 = sys.version_info [0] == 2 PY3 = sys.version_info [0] == 3
xiaoweiz

26
ඔබට sys.version_infoගුණාංග ලෙස සමහර ක්ෂේත්‍ර වෙත පිවිසිය හැකිය , එබැවින් PY3 = sys.version_info.major == 3තව ටිකක් සිත් ඇදගන්නා සුළු විය හැකිය.
krs013

1
සටහන: sys.hexversion 0x020502F0 සමඟ සැසඳේ, docs.python.org/2/library/sys.html#sys.hexversion
Yinon Ehrlich

1
පයිතන් 4 සිදු වූ සෑම විටම ඔබේ කේත ස්නිපටය කැඩී යනු ඇත. ඔබ කළ යුතුයි if sys.version_info >= (3,). විවිධ ප්‍රමාණයේ ටුපල් සංසන්දනය කිරීම මුළුමනින්ම පයිතොනික් වන අතර එය නිවැරදි දේ කරනු ඇත.
බොරිස්

380

විධාන රේඛාවෙන් ('V' ප්‍රාග්ධනය සටහන් කරන්න):

python -V

මෙය 'man python' හි ලේඛනගත කර ඇත.


14
ප්‍රාග්ධනය V යනු අනුවාදය මිස කුඩා අකුරු නොවේ
ව්‍යාජ

2
නැතහොත් !python -Vපයිතන්
කවචයකින්

97

මම මේ වගේ sys.hexversionදේවල් වලට කැමතියි.

http://docs.python.org/library/sys.html#sys.hexversion

>>> import sys
>>> sys.hexversion
33883376
>>> '%x' % sys.hexversion
'20504f0'
>>> sys.hexversion < 0x02060000
True

එය මා දැක නැති නව අනුවාද ලක්ෂණයකි, සාමාන්‍ය අනුවාදයට වඩා (අවම වශයෙන් මට) භාවිතා කිරීමට ටිකක් පහසුය ...
වේන් වර්නර්

6
orsorin: සෙත්ගේ පිළිතුරට වඩා මෙය හොඳ වන්නේ කෙසේදැයි ඔබට පැහැදිලි කළ හැකිද? ඔබ මෙය හොඳම යැයි පවසන බැවින්, මම පුදුම වෙමි.
0xC0000022L

3
X 0xC0000022L ටුපල් එකෙන් පෙළ සංසන්දනය කරන්නේ කෙසේදැයි ඔබ කවදා හෝ කල්පනා කර තිබේද? 'අවසාන' බීටා, ආර්සී හෝ එහි තිබිය හැකි ඕනෑම දෙයක් සමඟ සැසඳෙන්නේ කෙසේද? ඒ වෙනුවට ඔබට සංඛ්‍යාත්මක අගයක් තිබේ නම්, ඔබට සෑම විටම නිශ්චිත අනුවාදයක් නියම කිරීමට හැකි වනු ඇත.
සෝරින්

1
orsorin: අහ්, ඒක හරියටම කමක් නැහැ, එහෙම නේද? මම එරෙහිව සංසන්දනය නම් (2,6,4)වූ 'final'ඇති සැසැඳුම බලපාන බවක් පෙනෙන්ට නැත එය බලාපොරොත්තු නොවේ. පෙනෙන විදිහට මම ටුපල් එකේ “වඩාත්ම වැදගත්” කොටස් සංසන්දනය කරන විට පෙති කැපීම අවශ්‍ය නොවේ. මෙය සලකන ආකාරය ලෙස පෙනෙන අතර මගේ ප්‍රශ්නය වූයේ එයයි. මෙම විසඳුමට එහි සුදුසුකමක් නැතැයි මම නොකියමි, එය හොඳම දේ වන්නේ මන්දැයි මම කල්පනා කරමි - එනම් මට නැති වූ දේ.
0xC0000022L

11
මුදා හැරීමේ මට්ටම 'ඇල්ෆා', 'බීටා', 'අපේක්ෂකයා' හෝ 'අවසාන' එකක් ලෙස අර්ථ දක්වා ඇති අතර එය නිවැරදිව සැසඳිය හැකිය ...
ෆ්‍රෙඩ්රික්

69

භාවිතය platformගේpython_version මෙම stdlib සිට:

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

5
මුද්‍රණ ක්‍රියාකාරිත්වය සඳහා, එය වරහන් තුළ වඩා හොඳ වනු ඇත, අනුකූලතාව ගැන සිතයි. යමෙකු 3 වන අනුවාදයේ නියැදිය භාවිතා කරන්නේ නම්, සින්ටැක්ස් දෝෂය එහි රැඳී සිටිනු ඇත.
ඇලෙක්ස් චියැන්ග්

66

ඔබගේ හොඳම ඔට්ටුව බොහෝ විට එවැනි දෙයක් විය හැකිය:

>>> 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!"
>>>

3
සරල ව්‍යතිරේකයක් මිස ආනයන දෝෂයක් නොවන්නේ ඇයි? : පී
මාරාන්තික

4
addeadly - ImportError සින්ටැක්ස් දෝෂ අල්ලා නොගනී, ඔබ පැරණි පයිතන් තුළ නව සින්ටැක්ස් භාවිතා කිරීමට උත්සාහ කළහොත් එය විසි කරනු ඇත, එනම් පූර්ව 2.5 හි කෙටිමං කොන්දේසි සහිතව භාවිතා කිරීමට උත්සාහ කිරීම වැනි .
සෙත්

except Exceptionඉතා පුළුල් ය. ඔබ අපේක්ෂා කරන විශේෂිත ව්‍යතිරේක භාවිතා කිරීම වඩා හොඳ නොවේද?
ෆර්මි විරුද්ධාභාසය

1
Erfermiparadox - පුළුල් වීම උපකල්පන අඩු මට්ටමක තබා ගනී. මෙම except Exception:විසින්ම මාර්ගය මේ වන විටත් නවීන (2.x +) උත්කර්ෂවත් අන්දමින් උපකල්පනය කරයි. සමහර විට අනාගත පයිතන් ව්‍යතිරේක නම් කිසියම් පසුගාමී-නොගැලපෙන ආකාරයකින් නැවත සකස් කරයිද? (? බොහෝ විට නැත, නමුත් අප සියලු oculus භේදයක් හසු තැන්පත් කිරීම් විට පිඹුරා අවුරුදු 20 ක කාලයක් තුළ වගේ ඇත සංග්රහයේ දීර්ඝ කාලයක් පුරා පවතිනවා දේ දන්නවා.)
සෙත්

47

වැනි දෙයක් දමන්න:

#!/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)

ඔබගේ ස්ක්‍රිප්ටයේ ඉහළින්ම.

ඔබගේ ස්ක්‍රිප්ටයේ ඇති වෙනත් දේ මත පදනම්ව, ඉලක්කයට වඩා පැරණි පයිතන් අනුවාදයන්ට ස්ක්‍රිප්ට් පූරණය කිරීමට පවා නොහැකි විය හැකි බැවින් මෙම දෝෂය වාර්තා කිරීමට ප්‍රමාණවත් නොවනු ඇත. වැඩ කිරීමේ විසඳුමක් ලෙස, ඔබට වඩාත් නවීන කේත සමඟ ස්ක්‍රිප්ට් ආනයනය කරන ස්ක්‍රිප්ට් එකකින් ඉහත සඳහන් කළ හැකිය.


6
මෙය වැරදියි (හෝ අවම වශයෙන්, අසම්පූර්ණයි) මන්ද පැරණි පරිවර්තකයන් වැනි නව භාෂා ඉදිකිරීම් වලට බාධා කරනු ඇත x if Pred() else y. "ලෙක්සිං" අවධියේදී ඔවුන් මිය යනු ඇති අතර කිසි විටෙකත් සත්‍ය වශයෙන්ම ක්‍රියාත්මක කිරීමට අවස්ථාවක් නොලැබේ exit(1). වෙනත් ලිපිගොනු වල නව භාෂා අංග ඇතුළත් කිරීමේදී සෙත්ගේ පිළිතුර නිවැරදි ය.
මාර්ක් රුෂකොෆ්

2
Ark මාක් රුෂාකොෆ්: ඔබේ අදහස ව්‍යාකූලයි. මෙම පිළිතුරේ කුමන අංගය වැරදිද? නැතිවූ elseශාඛාව හෝ ඒ සඳහා <භාවිතා version_infoකරන්නේද? AFAIK Python pads ටුපල් වල අගයන් අස්ථානගත වී ඇති අතර මේ සියල්ල 2.6 ට පෙර වලංගු විය යුතුය, නැත? එබැවින් සෙත්ගේ පිළිතුර පෙති කැපීම (අතිරික්තව) භාවිතා කරන අතර මෙය සිදු නොවන අතර එය ඔබගේ අදහස තවත් ව්‍යාකූල කරයි.
0xC0000022L

5
මම හිතන්නේ ark මාක් රුෂාකොෆ් කියන්නේ ඔබට මෙය ගොනුවක ඉහළින්ම තිබේ නම් සහ එකම ගොනුවේ වෙනත් තැනක නව භාෂා අංගයක් තිබේ නම්, ගොනුව පූරණය කිරීමේදී පැරණි පයිතන් අනුවාදය මිය යනු ඇත, එය ක්‍රියාත්මක කිරීමට පෙර, එබැවින් දෝෂය නොපෙන්වයි. මූලික වශයෙන් ඔබ ඉහත (හෝ වෙනත් චෙක්පතක්) ගොනුවක ඉහළින් තැබිය යුතුය, ඉන්පසු වෙනම ලිපිගොනු වලින් පයිතන් නව අනුවාදයක් අවශ්‍ය කේතය ආයාත කරන්න.
rjmunro

1
ඔව්, අර්ජ්මුන්රෝ පැවසූ දේ :)
මාර්ක් රුෂකොෆ්

25

මෙන්න කෙලින්ම පිටවන කෙටි විධාන රේඛා අනුවාදයකි (ස්ක්‍රිප්ට් සහ ස්වයංක්‍රීයව ක්‍රියාත්මක කිරීම සඳහා පහසුය):

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)

1
ig විගිලන්සර් ඔබ හරි, ලියන අවස්ථාව වන විට එය එතරම් අදාළ නොවූ නමුත් මම දැන් එය පයිතන් 3 සඳහා යාවත්කාලීන කර ඇත :)
වුල්ෆ්

සතුටක්, මම මේ ප්රතිදානය අල්ලා විසින් ඇති අනුවාද අංකය ලබා සිටි මගේ ප්රශ්නය විශ්වාසනීය වෙනස python2 --versionහා python3 --versionPHP වලින්. මා හට ගැටළුවකින් තොරව දෙවැන්න ලැබෙනු ඇතත් passthru(), කලින් තිරයට මුද්‍රණය කරනු ලැබුවද ගොනුවකට හරවා
යැවුවද

1
@tox ඔබට print() වඩාත් පහසු නම් ගොනුවකට ලිවීමට ඔබට පැවසිය හැකිය .
වුල්ෆ්

මගේ නඩුවේදී මම දැනටමත් passthru()ප්‍රතිදානය ගොනුවකට හරවා යවනවාට වඩා වැඩි වනු ඇත . ඔබේ විසඳුම මට අවශ්‍ය දේම කරයි. :)
Tox

15

sixමොඩියුලය සමඟ , ඔබට මෙය කළ හැක්කේ:

import six

if six.PY2:
  # this is python2.x
else:
  # six.PY3
  # this is python3.x

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

sys.version ඔබට අවශ්‍ය දේ ලබා දෙයි, පළමු අංකය තෝරන්න :)


4

සෙත් කීවාක් මෙන්, ප්‍රධාන පිටපත පරීක්ෂා කළ හැකිය sys.version_info (නමුත් එය 2.0 වන තෙක් නොපෙන්වූ බව සලකන්න, එබැවින් ඔබට පැරණි අනුවාදයන්ට සහය දැක්වීමට අවශ්‍ය නම් sys මොඩියුලයේ වෙනත් අනුවාද දේපල පරීක්ෂා කිරීමට අවශ්‍ය වේ).

නමුත් පැරණි පයිතන් අනුවාදවල නොමැති ගොනුවේ කිසිදු පයිතන් භාෂා අංගයක් භාවිතා නොකිරීමට ඔබ තවමත් සැලකිලිමත් විය යුතුය. උදාහරණයක් ලෙස, පයිතන් 2.5 සහ ඊට පසුව මෙය අවසර දෙනු ලැබේ:

try:
    pass
except:
    pass
finally:
    pass

නමුත් පැරණි පයිතන් අනුවාද වල ක්‍රියා නොකරනු ඇත, මන්ද ඔබට තිබිය හැක්කේ හෝ අවසානයේ උත්සාහයට ගැලපීම පමණි. එබැවින් පැරණි පයිතන් අනුවාද සමඟ අනුකූල වීම සඳහා ඔබ ලිවිය යුතුය:

try:
    try:
        pass
    except:
        pass
finally:
    pass

4

සරලම ක්‍රමය

ඔබේ පර්යන්තයේ පයිතන් ටයිප් කරන්න, එවිට ඔබට පහත පරිදි අනුවාදය දැකිය හැකිය

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.
>>> 

24
"සරලම ක්‍රමය" ... ඉල්ලූ දෙයට වඩා වෙනස් දෙයක් කිරීමට.
ලූක්

2

පිළිතුරු කිහිපයක් දැනටමත් ආකාරය යෝජනා විමසීමට වත්මන් පිඹුරා අනුවාදය. කිරීමට පරීක්ෂා programmatically අනුවාදය අවශ්යතා, මම පහත සඳහන් ක්රම දෙකක් එක් කිරීමට භාවිත කළ කැමතියි:

# Method 1: (see krawyoti's answer)
import sys
assert(sys.version_info >= (2,6))

# Method 2: 
import platform
from distutils.version import StrictVersion 
assert(StrictVersion(platform.python_version()) >= "2.6")

2

විනෝදය සඳහා, පහත දැක්වෙන්නේ CPython 1.0-3.7b2, Pypy, Jython සහ Micropython මත එය සිදු කිරීමේ ක්‍රමයකි. මෙය නූතන කේතයෙන් එය කරන ක්‍රමයකට වඩා කුතුහලය දනවන කරුණකි. මම එය ලිව්වේ 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")

2

ඔබට පෙර පයිතන් 3 හඳුනා ගැනීමට අවශ්‍ය නම් සහ කිසිවක් ආනයනය කිරීමට අවශ්‍ය නැතිනම් ...

... ඔබට (ab) ලැයිස්තු අවබෝධය විෂය පථයේ වෙනස්කම් භාවිතා කර තනි ප්‍රකාශනයකින් කළ හැකිය :

is_python_3_or_above = (lambda x: [x for x in [False]] and None or x)(True)

2

වින්ඩෝස් හි විධාන සඳහා පයිතන් අනුවාදය සත්‍යාපනය කිරීම සඳහා, විධාන විමසුමක් තුළ පහත දැක්වෙන විධානයන් ක්‍රියාත්මක කර ප්‍රතිදානය සත්‍යාපනය කරන්න

c:\>python -V
Python 2.7.16

c:\>py -2 -V
Python 2.7.16

c:\>py -3 -V
Python 3.7.3

තවද, එක් එක් පයිතන් අනුවාදය සඳහා ෆෝල්ඩර වින්‍යාසය බැලීමට, පහත දැක්වෙන විධානයන් ක්‍රියාත්මක කරන්න:

For Python 2,'py -2 -m site'
For Python 3,'py -3 -m site'

2
from sys import version_info, api_version, version, hexversion

print(f"sys.version: {version}")
print(f"sys.api_version: {api_version}")
print(f"sys.version_info: {version_info}")
print(f"sys.hexversion: {hexversion}")

ප්‍රතිදානය

sys.version: 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)]
sys.api_version: 1013
sys.version_info: sys.version_info(major=3, minor=6, micro=5, releaselevel='final', serial=0)
sys.hexversion: 50726384

පයිතන් 2.7 සඳහා, අප භාවිතා කළ යුතුය print("sys.version: {}".format(version)).
මාකෝ

Ar මාකෝ, හරි. වචන ආකෘති සමඟ v 3+ සඳහා වචන හැඩතල ගැන්වීම සිදු කෙරේ. පයිතන් 2.7 සඳහා මුද්‍රණය ('[{}, {}, {}]' ආකෘතියෙන් (1,2,3)) කළ හැකිය. ref: stackoverflow.com/questions/517355/string-formatting-in-python
oetzi

1

පයිතන් අනුවාදය පරීක්ෂා කරන්න: python -Vහෝpython --version හෝapt-cache policy python

whereis pythonඅනුවාද කීයක් ස්ථාපනය කර ඇත්දැයි බැලීමට ඔබට ධාවනය කළ හැකිය.


4
එකම පිළිතුර දැනටමත් පළ කර ඇත. සහ, ප්රශ්නය "මම ස්ථාපනය කර ඇති පයිතන් අනුවාදය පරීක්ෂා කරන්නේ කෙසේද?" නමුත් "මගේ පිටපතෙහි අනුවාදය පරීක්ෂා කරන්නේ කෙසේද".
ස්ටැන්ලි කූ

1

sys.version_infotuple3.7 වන විට ආපසු ලබා දෙන බවක් නොපෙනේ . ඒ වෙනුවට, එය විශේෂ පංතියක් ලබා දෙයි, එබැවින් ටුපල් භාවිතා කරන සියලුම උදාහරණ ක්‍රියා නොකරයි, මට අවම වශයෙන්. පයිතන් කොන්සෝලයක ප්‍රතිදානය මෙන්න:

>>> import sys
>>> type(sys.version_info)
<class 'sys.version_info'>

සංකලනයක් භාවිතා නොවන බව ද මට තියෙනවා sys.version_info.majorසහ sys.version_info.minorකියවීම ප්රමාණවත්ය පෙනේ. උදාහරණයක් වශයෙන්,...

import sys
if sys.version_info.major > 3:
    print('Upgrade to Python 3')
    exit(1)

ඔබ පයිතන් 3 ධාවනය කරන්නේ දැයි පරීක්ෂා කරයි. ඔබට වඩාත් නිශ්චිත අනුවාදයන් සමඟ පරීක්ෂා කළ හැකිය ...

import sys
ver = sys.version_info
if ver.major > 2:
    if ver.major == 3 and ver.minor <= 4:
        print('Upgrade to Python 3.5')
        exit(1)

ඔබ අවම වශයෙන් පයිතන් 3.5 ක් ධාවනය කරන්නේ දැයි පරීක්ෂා කළ හැකිය.


1
එය උප පංතියක් වැනි දෙයක් වන namedtupleඅතර එය ටුපල් සමඟ සංසන්දනය කිරීම නියත වශයෙන්ම ක්‍රියාත්මක වේ. පූර්ණ සමානාත්මතාවය ලබා ගැනීම සඳහා ඔබට මූලද්‍රව්‍ය පහක ටයිප් එකක් අවශ්‍ය වේ: ප්‍රධාන, සුළු, මයික්‍රෝ, මුදාහැරීමේ (නූල්) සහ අනුක්‍රමික.
මිහායිල් එඩොෂින්

0

ඊටත් වඩා සරලම ක්‍රමය:

ස්පයිඩර් හි, නව "අයිපයිතන් කොන්සෝලය" ආරම්භ කරන්න, ඉන්පසු ඔබගේ පවතින ඕනෑම ස්ක්‍රිප්ට් එකක් ධාවනය කරන්න.

දැන් අනුවාදය කොන්සෝල කවුළුවේ මුද්‍රණය කරන ලද පළමු ප්‍රතිදානයේ දැකිය හැකිය:

"පයිතන් 3.7.3 (පෙරනිමිය, අප්‍රේල් 24 2019, 15:29:51) ..."

රූප විස්තරය මෙහි ඇතුළත් කරන්න


0

විධාන රේඛාවෙන් පරීක්ෂා කිරීම සඳහා, එක් විධානයකින්, නමුත් ප්‍රධාන, සුළු, මයික්‍රෝ අනුවාදය, මුදාහැරීම් සහ අනුක්‍රමික ඇතුළත් කරන්න , ඉන්පසු ඔබ ඔබේ පිටපත සඳහා භාවිතා කරන ආකාරයටම එකම පයිතන් පරිවර්තකය (එනම් එකම මාවත) භාවිතා කරන්න:

> path/to/your/python -c "import sys; print('{}.{}.{}-{}-{}'.format(*sys.version_info))"

3.7.6-final-0

සටහන: .format()f-string වෙනුවට හෝ '.'.join()අත්තනෝමතික හැඩතල ගැන්වීම් සහ බෙදුම් අක්ෂර භාවිතා කිරීමට ඔබට ඉඩ සලසයි, උදා. පයිතන්, අංකී, පැන්ඩා, ස්කලර්න්, මැකෝස්, එක්ස්කෝඩ්, ක්ලැන්ග්, බීර, කොන්ඩා, ඇනකොන්ඩා, ජීසීසී / ජී ++ යනාදී සියලුම වැදගත් අනුවාදයන් වාර්තා කරන බාෂ් උපයෝගිතා ස්ක්‍රිප්ටයක් තුළ මම මෙය තැබුවෙමි. .


1
මෙම පිළිතුර වෙනත් ප්‍රශ්නයක් සඳහා සුදුසු වනු ඇත , ප්‍රශ්නය යටතේ ඇති අදහස් සමඟ සම්බන්ධ වී ඇති ආකාරයට. පයිතන් අනුවාදය එම පිටපත තුළම ස්ක්‍රිප්ට් එකක් ක්‍රියාත්මක කරන්නේ කුමක් ද යන්න තීරණය කිරීම සුදුසු නොවේ python.
user2357112

@ user2357112supportsMonica: මෙම පිළිතුර සඳහන් කර ඇති පරිදි ප්‍රශ්නයට පරිපූර්ණව ගැලපේ. කොතැනකවත් සඳහන් කර නැති ප්‍රශ්නය "පිටපත ඇතුළත සිට" පවසයි. එය එසේ වූයේ නම් එය වෙනස් වනු ඇත. පැහැදිලිවම මෙම පිළිතුරෙන් ගම්‍ය වන්නේ "එකම පයිතන් පරිවර්ථකයාට එනම් ඔබේ පිටපත සඳහා ඔබ භාවිතා කළ මාර්ගයටම ආයාචනා කරන්න" යන්නයි. නමුත් ඔබ එය අවධාරනය කරන්නේ නම් එය පිළිතුරට සංස්කරණය කළ යුතු යැයි මම සිතමි.
smci

-1

ඔබ ලිනක්ස් හි වැඩ කරන්නේ නම් විධාන python ප්‍රතිදානය ලබා දෙන්න

පයිතන් 2.4.3 (# 1, ජුනි 11, 2009, 14:09:37)

[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] ලිනක්ස් 2 මත

වැඩි විස්තර සඳහා "උදව්", "ප්‍රකාශන හිමිකම", "බැර" හෝ "බලපත්‍රය" ටයිප් කරන්න.


6
මගේ පයිතන් පිටපත අර්ථ නිරූපණය කරන පයිතන් අනුවාදය ලබා ගැනීමට මට අවශ්‍යය. නිවැරදි පිළිතුර පිළිගෙන ඇත.
වාහකයා

Pythonස්ක්‍රිප්ට් එක තුළ අනුවාදය ලබා ගැනීමට මෙය උදව් නොකරයි , මීට පෙරද පළ කර ඇති සමාන පිළිතුර: stackoverflow.com/a/35294211/950762
Akif
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.