'Python' වැඩසටහන් විධානය Python 3 ක්‍රියාත්මක කරන්නේ කෙසේද?


388

මෙම pythonවැඩසටහන විධානය Python 2. Python 3 භාවිතා ක්රියාත්මක කළ හැක ඉටු python3විධාන. පයිතන් 3 pythonවිධානය භාවිතා කර ක්‍රියාත්මක කරන්නේ කෙසේද?


35
අනතුරු ඇඟවීමක් පමණි: / usr / bin / python symlink 2.7 වෙනුවට python3 වෙත යොමු කිරීමට උත්සාහ නොකරන්න. උබුන්ටු ගබඩාවල ඇති බොහෝ වැඩසටහන් සඳහා / usr / bin / python පයිතන් 2.x ට අනුකූල විය යුතුය.
ආත්ම මූලාශ්‍ර

1
අහ්, දැන් ඔබ උත්ශ්‍රේණිගත කිරීම සඳහා අදහස් කළ දේ මට ලැබුණා ... ඇත්ත වශයෙන්ම උබුන්ටු සංවර්ධකයින් ඒ පිළිබඳව කටයුතු කරමින් සිටී: wiki.ubuntu.com/Python/3 "ඩෙස්ක්ටොප් සංයුක්ත තැටියේ පයිතන් 3 පමණක් තිබීම උබුන්ටු 14.04 එල්ටීඑස් සඳහා මුදා හැරීමේ ඉලක්කයකි. රූප."
ආත්ම මූලාශ්‍ර

1
තවත් සටහනක, පයිතන් 3 ඔවුන්ගේ පෙරනිමිය බවට පත්කිරීමට ඉගෙන ගැනීමට උත්සාහ කරන නිසා මෙහි පැමිණෙන ඕනෑම කෙනෙකුට අථත්‍ය පරිසරයන් (උදා: virtualenv) හෝ බහාලුම් (උදා: LXC හෝ Docker) පිළිබඳ පර්යේෂණ කිරීමට භාවිතා කළ හැකිය.
කෙවින්

1
ඉහළින් ඇති සෝල්සෝර්ස් අනතුරු ඇඟවීම සම්බන්ධයෙන්, PEP 394 බලන්න, එය පයිතන් ක්‍රියාත්මක කළ හැකි සහජීවනය සඳහා නම් කිරීමේ සම්මුතීන් ප්‍රමිතිකරණය කරන අතර පයිතන් ක්‍රමලේඛකයින් සහ පැකේජ නඩත්තු කරන්නන් විශ්වාස කරන (සහ කළ යුතු).
ඩේවිඩ් ෆෝස්ටර්

2
jwjandrea, ඔව් අථත්ය පරිසරයක පවා pythonඅර්ථයක් ලෙස තබා ගත යුතුය python2. මම මගේ අදහස අදහස් කළේ පද්ධතියේ පයිතන් වටා වැඩ කිරීමට උත්සාහ කරනවා වෙනුවට යෙදුම් විශේෂිත පයිතන් අනුවාදයක් ලබා ගැනීමේ මාර්ගයක් ලෙස ය.
කෙවින්

Answers:


437

සරල ආරක්ෂිත ක්‍රමයක් නම් අන්වර්ථයක් භාවිතා කිරීමයි. මෙය ~/.bashrcහෝ ~/.bash_aliasesගොනුව තුළට දමන්න :

alias python=python3

ගොනුව තුල ඉහත එකතු පසුව, ලකුණු source ~/.bashrcහෝ source ~/.bash_aliases.

උදාහරණයක් වශයෙන්:

$ python --version
Python 2.7.6
$ python3 --version
Python 3.4.3
$ alias python=python3
$ python --version
Python 3.4.3

අන්වර්ථය මඟහරවා ගැනීම සඳහා commandසාදන ලද විධානය භාවිතා කරන්න:

$ command python --version
Python 2.7.6

අන්වර්ථය මඟහරවා ගත හැකි තවත් ක්‍රමයක් වන්නේ \විධානයට පෙර භාවිතා කිරීමයි.

$ \python --version 
Python 2.7.6

වත්මන් කවචයේ අන්වර්ථය අක්‍රිය කිරීමට, unaliasසාදන ලද විධානය භාවිතා කරන්න:

$ unalias python
$ python --version
Python 2.7.6

4
ඇත්ත වශයෙන්ම මට අවශ්‍ය වන්නේ 2.7 අතුගා දමා එය 3.3 සමඟ ප්‍රතිස්ථාපනය කිරීමයි. දැනට එය නරක අදහසක් සේ පෙනේ ..
ගිරි

41
+1 3.3 සමඟ වැඩ කිරීමට හැකිවන පරිදි 2.7 පිරිසිදු කිරීමට හේතුවක් නැත. බොහෝ මෘදුකාංග තවමත් 2.7 මත රඳා පවතී; එය දිගටම කරගෙන යන්න.
don.joey

10
@begueradj අන්වර්ථය සංකේතාත්මක සම්බන්ධතාවයකට වඩා සම්පූර්ණයෙන්ම වෙනස් ය .
රාදු රදෙනු

3
පරෙස්සම් සහගත වචනයක්: මෙය පයිතන් 2.7 අපේක්ෂා කරන වෙනත් ස්ක්‍රිප්ට් බිඳ දැමිය හැකිය.
kmiklas

4
ඇමතීමේදී භාවිතා alias python='python3'කිරීම වැඩ කරන බවක් නොපෙනේ sudo python. මෙම අවස්ථාවේදී, එය ඒ වෙනුවට පෙරනිමි python2.7 විවෘත කරයි.
මිචෙල් වැන් සූලන්

89

[ජූනි 2016] සංක්‍රාන්තිය පිළිබඳ තොරතුරු සඳහා නිර්දේශිත ස්ථානය නිල උබුන්ටු පයිතන් පිටුවයි.


සිට උබුන්ටු විකි :

උබුන්ටු සහ ඩෙබියන් යන දෙවර්ගයටම , ඩිස්ට්‍රෝස් හි පයිතන් 3 සුපුරුදු, කැමති පයිතන් අනුවාදය බවට පත් කිරීම සඳහා අපට අඛණ්ඩ ව්‍යාපෘති ඉලක්ක ඇත.

මෙයින් අදහස් නොකෙරේ :

  • /usr/bin/pythonපයිතන් 3 වෙත යොමු වනු ඇත. නැත, මෙය සිදු නොවනු ඇත ( PEP 394 වෙනත් ආකාරයකින් පෙනී නොසිටින්නේ නම් , එය අපේක්ෂා කළ හැකි අනාගතයට සැක සහිත ය). /usr/bin/pythonසහ /usr/bin/python2පයිතන් 2.7 /usr/bin/python3වෙත යොමු වන අතර නවතම සහය දක්වන පයිතන් 3 අනුවාදය වෙත යොමු වේ.

  • පයිතන් 2 සංරක්ෂිතයෙන් ඉවත් කෙරේ. නැත, මෙය සිදු නොවේ . PEP 373 විසින් 2020 වන තෙක් උඩු යටිකුරු දෝෂ නිරාකරණ නඩත්තු සහාය ලබා දෙන බවට පොරොන්දු වී ඇති හෙයින්, පයිතන් 2.7 දිගු කලක් උබුන්ටු වල සහය ලබා ගත හැකි වනු ඇතැයි අපි අපේක්ෂා කරමු .

වෙනත් පැකේජ පරායත්තතා නිසා සංකේතාත්මක සබැඳිය වෙනස් කිරීම රෙකමදාරු කරනු නොලැබේ, නමුත් ඒවාට “පයිතන් 3 සුපුරුදු, ඩිස්ට්‍රෝස් හි වඩාත් කැමති පයිතන් අනුවාදය බවට පත් කිරීම සඳහා අඛණ්ඩ ව්‍යාපෘති ඉලක්ක ඇත”.


පාබල භාවිතය සඳහා, වැනි @Radu Rădeanu , මම පරිශීලක දී අන්වර්ථ දමා නිර්දේශ ~/.bashrc, .bash_aliasesගොනුව (විවිධ ගොනු, ඇතුළු ~/.bash_profile, අවම වශයෙන් එක් වරක් පටවනු, සංවිධාන කටයුතු සඳහා වැඩි වශයෙන්, නමුත් වේදිකාව වෙනස් විය හැකිය.) පයිතන් අතථ්‍ය පරිසරයන් ද හොඳින් ක්‍රියාත්මක වේ.

අන්වර්ථ උදාහරණ:

alias python=python3

හෝ

alias python='/usr/bin/python3'

ස්ක්‍රිප්ට් තවමත් #!/usr/bin/env python3හරස් අනුකූලතාව සඳහා යමක් භාවිතා කළ යුතුය .

envඅථත්ය පරිසරයන් සමඟ මිශ්ර භාවිතය සඳහා භාවිතා කිරීම හොඳයි.

සටහන (jwjandrea ට ස්තූතියි): අන්වර්ථයන් යනු ක්‍රියාකාරී පරිසරයේ කොටසක් මිස පරිශීලක පරිසරය නොවේ. එබැවින් ඒවා ෂෙබාං ( #!) වෙත ලබා ගත නොහැක . ඔබ අන්වර්ථය python = python3 ට කැමති නම්, ෂෙබාන්ග් program.pyනොමැතිව සමහරක් ක්‍රියාත්මක කළ හැකිය python program.py. 3.4 සහ 3.6 වැනි පයිතන් 3 හි බහු සංස්කරණයක් ඇති පද්ධති සඳහා අන්වර්ථකරණය ප්‍රයෝජනවත් වේ.


1
මෙය දැන් යල්පැන ඇති බවක් පෙනේ: ඔවුන් Xenial හි python2 ඉවත් කිරීමට සැලසුම් කළ නමුත් පසුව එසේ නොවීය.
OrangeDog

1
RangeOrangeDog, යාවත්කාලීන කිරීමට ස්තූතියි. ඔව්, මා සඳහන් කළ විකී පිටුව යල් පැන ගිය එකක් ලෙස සලකුණු කර ඇත, පසුගිය වසර දෙක තුළ පයිතන් 3 වෙත පමණක් ගමන් කිරීම සඳහා වැඩි ප්‍රගතියක් ලබා ඇති බැවින් මෙම ප්‍රගතිය අනුගමනය කිරීමට නව පිටුව නිල උබුන්ටු පයිතන් පිටුව වේ.
කෙවින්

Xenial සඳහා වන සැලසුම් සම්බන්ධයෙන් "නවතම" පිටුව ද යල්පැන ඇත.
OrangeDog

"එය මෑතකදී යාවත්කාලීන කර නොමැති තරම්" එය "යල්පැනගිය" යැයි මම නොකියමි. මේ පිළිබඳ ලිපි තබා ගැනීම සඳහා වර්තමාන ස්ථානය එය බව පෙනේ. කෙසේ වෙතත්, මෙහි අදහස් දැක්වීමේදී, ඕනෑම කෙනෙකුට සොයාගත හැකි වෙනත් මෑත කාලීන ප්‍රභවයන් මම අගය කරමි. මගේ පිළිතුරට තවත් මූලාශ්‍ර එකතු කිරීම, වෙනස සාධාරණීකරණය නොකිරීමට හේතුව python, පරිවර්තනය සම්පූර්ණ වන තුරු සැබවින්ම අදාළ නොවේ. එසේ වුවද, එය නිකම්ම ගැටලුවක් නොවන දෙයක් බවට පත්විය හැකිය.
කෙවින්

2
අන්වර්ථයන් බාෂ්ගේ අභ්‍යන්තරය, පරිසරයේ කොටසක් නොවේ, එබැවින් ඔබට තවමත් python3ෂෙබාං හි භාවිතා කිරීමට අවශ්‍ය වනු ඇත , නැත python.
wjandrea

33

යාවත්කාලීන කිරීම: පයිතන් 2 සහ පයිතන් 3 එකිනෙකට හුවමාරු නොවන බැවින් මෙය වැරදි මාර්ගය බව මම ඉගෙන ගතිමි.

ඔබට විධාන රේඛා මෙවලම උත්සාහ කළ හැකිය update-alternatives.

$ sudo update-alternatives --config python

"පයිතන් සඳහා විකල්පයක් නැත" යන දෝෂය ඔබට ලැබුනේ නම්, පහත දැක්වෙන විධානය සමඟ විකල්පයක් ඔබම සකසන්න:

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

/usr/bin/python3අනුව ඔබේ අපේක්ෂිත පයිතන් අනුවාදයට මාර්ගය වෙනස් කරන්න .


21
python2 සහ python3 විකල්ප නොවේ. මේ සඳහා යාවත්කාලීන විකල්ප භාවිතා නොකරන්න.
jobin

ඔවුන් එසේ නොවන්නේ ඇයි? update-alternativesපයිතන් සඳහා සුදුසු නොවන්නේ මන්දැයි ඔබගෙන් කෙනෙකුට පැහැදිලි කළ හැකිද ? ඒක නිසා තමයි legacy.python.org/dev/peps/pep-0394 ?
දිමිත්‍රි ග්‍රිගෝරෙව්

12
විකල්ප යනු එකම ක්‍රියාකාරීත්වය සඳහා වෙනස් ක්‍රියාත්මක කිරීම් ය. python2 සහ python3 එකම ක්‍රියාකාරීත්වයක් ලබා නොදේ.
එලී

ඔබ විසින් පයිතන් 3 හි වෙනත් අනුවාදයන් අතින් ස්ථාපනය කර ඇත්නම් (ppa හෝ වෙනත් ඕනෑම දෙයක්) sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
ඩේවිඩ් බොකුම්

පයිතන් සමඟ නොපැමිණෙන 18.04.2 vm සඳහා මට මෙය කිරීමට අවශ්‍ය විය. ස්තූතියි
අඳුරු තරුව 1

12

මත උබුන්ටු 20.04+ ඔබට සිදු කළ හැකි

sudo apt install python-is-python3

ඊට ඉහළින්, අනාගතයේදී යම් දෙයක යැපීමක් ලෙස පයිතන් 2 ස්ථාපනය කිරීමෙන් වළක්වා ගත හැකිය apt-mark hold:

sudo apt-mark hold python2 python2-minimal python2.7 python2.7-minimal libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib 

9

උබුන්ටු සහ අනෙක් ලිනක්ස් ඩිස්ට්‍රෝස් තවමත් බොහෝ දුරට යෙදුම් සහ විධාන ගණනාවක් සඳහා පයිතන් 2.7 මත රඳා පවතී. ඔබ "පයිතන්" හි පෙරනිමි යොමුව පයිතන් 3.x ලෙස වෙනස් කළහොත්, පයිතන් ශ්‍රිත ගණනාවක්ම ප්‍රකාශ කිරීමේ දෝෂ විසි කිරීමට පටන් ගනී.

උදාහරණයක් ලෙස, උබුන්ටු හි, ඔබ කෙලින්ම ගොනුව සංස්කරණය කර ෂෙබාං '#! RHEL (Red Hat Enterprise Linux) රසයන් වන Red Hat, Fedora සහ CentOS මත, 'Yum' විධානය ද Python 2.7 මත රඳා පවතී.

මෙහි මගේ අදහස නම්, ඔබ සැලකිය යුතු කේත ප්‍රමාණයක් ප්‍රකාශ කිරීමේ දෝෂ විසි කිරීමට පටන් ගන්නා නිසා ඔබට පයිතන් 3.x යොමු කිරීම සඳහා පර්යන්තයේ 'පයිතන්' ටයිප් කළ හැකිය.

ටර්මිනලයේ ඇති 'python3' විධානය සහ ඔබේ Python 3.x ලිපිගොනු වල '#! / Usr / bin / env python3' යන ෂෙබාං භාවිතා කිරීමෙන් ඔබට වඩා හොඳය.


4

කරන්න

cd ~
gedit .bash_aliases

ඉන්පසු ලියන්න

alias python=python3

හෝ

alias python='/usr/bin/python3'

ගොනුව සුරකින්න, ටර්මිනලය වසා නැවත විවෘත කරන්න.
සබැඳිය


2

/ Usr / bin / python සහ / usr / bin / pip ඉවත් කිරීම ඉතා ප්‍රයෝජනවත් බව මට පෙනේ. මෙමඟින් සියලුම වැඩසටහන් "python2" සහ "python3" විධානයන් මත රඳා සිටීමට බල කරයි.

සමහර විකල්ප සහ යල් පැන ගිය පැකේජ #!/usr/bin/pythonවැඩ කිරීම මත රඳා පැවතුනද , අමුතු හා සමහර විට අසීරු දෝෂයන් නොකඩවා සිදු කරනවාට වඩා මම එම වැඩසටහන් සඳහා පැච් ඉදිරිපත් කරමි.


-1
cat > /usr/local/bin/py << 'EOF'
#!/bin/dash
python3 "$@"
EOF

(ඔබට / usr / local / bin වෙත ලිඛිත අවසරයක් තිබේ නම්) එලෙසම

cat > /usr/local/bin/pyi << 'EOF'
#!/bin/dash
python3 -i "$@"
EOF

ඔබ තෝරාගත් පයිතන් සඳහා පයි ටයිප් කරන්න (සහ #! පේළිවල පයි භාවිතා කරන්න).


1
සිම්ලින්ක් භාවිතා කිරීම සරල නොවේද? sudo ln -s /usr/bin/python3 /usr/local/bin/py
wjandrea

1
pyiඔබට -iවිකල්පයක් ලෙස දිය හැකි විට කරදර වන්නේ ඇයි py?
wjandrea
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.