ไม่สามารถตั้งค่าเวอร์ชัน python เริ่มต้นเป็น python3 ใน ubuntu


174

ผมพยายามที่จะชุดรุ่นหลามเริ่มต้นในpython3 Ubuntu 16.04โดยค่าเริ่มต้นจะเป็นpython2(2.7) ฉันทำตามขั้นตอนด้านล่าง:

update-alternatives --remove python /usr/bin/python2
update-alternatives --install /usr/bin/python python /usr/bin/python3

แต่ฉันได้รับข้อผิดพลาดต่อไปนี้สำหรับคำสั่งที่สอง

rejeesh@rejeesh-Vostro-1015:~$ update-alternatives --install /usr/bin/python python /usr/bin/python3
update-alternatives: --install needs <link> <name> <path> <priority>

Use 'update-alternatives --help' for program usage information.   

ฉันเพิ่งเริ่มใช้ Ubuntu และไม่รู้ว่าฉันทำอะไรผิด


3
ตามที่ระบุไว้ในคำเตือนคุณไม่มีลำดับความสำคัญ
greedy52

7
ระวังอย่าลบ Python 2.7 ออกเพราะมันจะทำให้สิ่งอำนวยความสะดวกมากมายของระบบปฏิบัติการของคุณพิการ (จากประสบการณ์ :()
Jacques de Hooge

ฉันได้แก้ไขคำตอบของฉันโดยเกี่ยวข้องกับข้อผิดพลาดลำดับความสำคัญของคุณ
Steampunkery

1
คำเตือน: มันเสียงเหมือนความคิดที่ดีที่จะให้ฉันเปลี่ยนpythonไปหลาม 3. วิธีการเริ่มต้นที่จะเรียกสคริปต์เขียนในหลามที่ 2 คือในขณะที่มันเป็นpython my-script-p2.py python3 my-script-p3.pyฉันคาดว่าสคริปต์ระบบจำนวนมากจะใช้สิ่งนี้
ม.ค.

1
สำหรับผู้ที่สนใจในหัวข้อนี้ฉันขอแนะนำให้ใส่ใจกับสภาพแวดล้อมเสมือน: docs.python.org/3/tutorial/venv.html Ubuntu 18 LTS ของฉันยังคงใช้ Python 2.7 และตัวอย่างเช่นฉันใช้ สภาพแวดล้อมเสมือนจริงสำหรับการใช้ Python 3.X และเป็นปัจจุบันในโครงการ Django ของฉัน
Victor Bjorn

คำตอบ:


158

แก้ไข:

ฉันเขียนสิ่งนี้เมื่อฉันยังเด็กเป็นคนไร้เดียงสาupdate-alternativesเป็นวิธีที่ดีกว่าในการทำเช่นนี้ ดูคำตอบของ @Pardhu

เปิดไฟล์nano ~/.bashrc. bashrc พิมพ์alias python=python3 ขึ้นบรรทัดใหม่ที่ด้านบนของไฟล์จากนั้นบันทึกไฟล์ด้วย ctrl + o แล้วปิดไฟล์ด้วย ctrl + x source ~/.bashrcจากนั้นกลับไปที่ประเภทบรรทัดคำสั่งของคุณ ตอนนี้นามแฝงของคุณควรเป็นแบบถาวร


70
นี่คือคำตอบที่ผิด การแก้ไข bashrc ของคุณไม่ได้ทำเช่นเดียวกับทางเลือกในการอัปเดต ตัวอย่างเช่นสคริปต์ที่ขึ้นต้นด้วย#!/usr/bin/env pythonจะไม่ใช้เวอร์ชันใน bashrc กรุณาใช้คำตอบของ @Pardhu
stonewareslord

ฉันเขียนคำตอบนี้เมื่อนานมาแล้วและฉันทราบว่าทางเลือกในการอัปเดตไม่เหมือนกับการเปลี่ยน bashrc ฉันสามารถแก้ไขคำตอบได้หากคุณต้องการ
Steampunkery

1
เป็นการเตือนผู้ใช้มากกว่าด้วยคำถามนี้ว่าการเปลี่ยนนามแฝงไม่ได้ทำสิ่งเดียวกัน ขึ้นอยู่กับคุณหากคุณต้องการแก้ไข
stonewareslord

นี่เป็นคำตอบเดียวที่ช่วยฉันได้ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5.2ฉันพยายามทำ But I got: update-alternatives: --install needs <link> <name> <path> <priority> Use 'update-alternatives --help' for program usage information.
alexchenco

2
ฉันทำสิ่งนี้และมันทำให้สิ่งต่าง ๆ พังทลายเช่นผู้มีคุณธรรม คำตอบนี้กำลังสร้างปัญหามากขึ้น
Kuzeko

360

บรรทัดที่สองที่กล่าวถึงสามารถเปลี่ยนเป็น

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

นี้จะช่วยให้ลำดับความสำคัญของ 10 python3สำหรับเส้นทางของ ข้อเสียของการแก้ไข.bashrcไฟล์คือจะไม่ทำงานในขณะที่ใช้คำสั่งกับsudo.

อัปเดต:โปรดใช้sudoในขณะที่เรียกใช้คำสั่งดังนี้:

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


4
ทางออกที่ดีและง่าย
PrakashG

8
ดีและถูกต้องตรงประเด็น "<priority>" ในข้อความแสดงข้อผิดพลาดได้แนะนำไปแล้ว โดยทั่วไปต้องใช้ BTW "sudo" เพื่อรันคำสั่งติดตั้งนี้
ywu

4
อย่างที่คุณ ywu บอกว่าฉันต้องเรียกใช้ "sudo update-alternate --install / usr / bin / python python / usr / bin / python3 10"
Roy

3
นี่เป็นวิธีที่ถูกต้องในการดำเนินการอย่างแน่นอน แต่ก็ควรสังเกตว่าการเปลี่ยนค่าเริ่มต้นทั้งระบบมีแนวโน้มที่จะทำลายบางสิ่ง ตัวอย่างเช่นฉันต้องไปและใช้การแก้ไขกับ terminatorซึ่งใช้ได้กับ python2 เท่านั้น
Dale Anderson

1
ไม่ทำงานอย่างสมบูรณ์ - หลังจากคำสั่งนี้pythonทำงานpython3แต่python-configยังคงทำงานpython2-configและเกิดการแตกหักทั่วไป
Chris Dodd

47

หากต้องการเปลี่ยน Python 3.6.8 เป็นค่าเริ่มต้นใน Ubuntu 18.04 เป็น Python 3.7

ติดตั้ง Python 3.7

ขั้นตอนในการติดตั้ง Python3.7 และกำหนดค่าเป็นล่ามเริ่มต้น

  1. ติดตั้งแพคเกจ python3.7 โดยใช้ apt-get

    sudo apt-get install python3.7

  2. เพิ่ม Python3.6 & Python 3.7 ไปที่ update-alternatives

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
  1. อัปเดต Python 3 ให้ชี้ไปที่ Python 3.7

    sudo update-alternatives --config python3 ป้อน 2 สำหรับ Python 3.7

  2. ทดสอบเวอร์ชันของ python

python3 --version
Python 3.7.1 

5
คุณอาจต้องการรวมคำเตือนว่าอาจทำให้ซอฟต์แวร์แพ็กเกจเสียหายได้ Python 3.6 เป็นค่าดีฟอลต์แบบกระจายและแพ็คเกจซอฟต์แวร์ที่แถมมาจะถือว่าเวอร์ชันนี้
ทิม

ฉันสามารถเปลี่ยน python เป็นเวอร์ชัน 3.7 แทน python3 ได้หรือไม่
Wee Hong

@ ทิมวิธีที่ดีที่สุดในการดูแลคืออะไร?
Shreya

@ วีฮงใช่คุณทำได้ แทนที่จะเป็น $ sudo update-alternate --install / usr / bin / python3 python3 .... คุณเพียงแค่เปลี่ยนเป็น $ sudo update-alterative --install / usr / bin / python python ..... และหลังจาก: sudo update - ทางเลือก --config python
Arthur Zennig

25

จะเปลี่ยนไป python3 คุณสามารถใช้คำสั่งต่อไปใน alias python=python3terminal


5
แต่ใช้ได้กับกระบวนการที่กำลังทำงานอยู่ในเทอร์มินัลเท่านั้น ถ้าฉันปิดและเปิดเทอร์มินัลมันจะเปลี่ยนกลับเป็น python2
RejeeshChandran

2
@RejeeshChandran ดู Steampunkery ตอบ
Seraf

20

หากคุณมี Ubuntu 20.04 LTS (Focal Fossa) คุณสามารถติดตั้งpython-is-python3:

sudo apt install python-is-python3

ซึ่งแทนที่ symlink ในการชี้ไปที่/usr/bin/python/usr/bin/python3


2
พิมพ์ผิดเล็กน้อย: Ubuntu Focal คือ 20.04 ไม่ใช่ 20.20
Conchylicultor

1
มันคือสิ่งที่ฉันต้องการไม่ใช่แค่นามแฝง ขอบคุณ :)
Tien Do

1
เพราะนี่เป็นเรื่องเกี่ยวกับ distro ล่าสุดผมขอแนะนำให้ใช้aptแทนapt-getสำหรับinstallsubcommand
Shiplu Mokaddim

@ShipluMokaddim จุดดี. คำตอบแก้ไข!
silviot

15

วิธีง่ายๆที่ปลอดภัยคือการใช้นามแฝง วางสิ่งนี้ลงในไฟล์ ~ / .bashrc: หากคุณใช้โปรแกรมแก้ไข gedit

gedit ~ / .bashrc

เพื่อเข้าไปในไฟล์ bashrc จากนั้นที่ด้านบนของไฟล์ bashrc ทำการเปลี่ยนแปลงต่อไปนี้

นามแฝง python = python3

หลังจากเพิ่มข้างต้นในไฟล์ เรียกใช้คำสั่งด้านล่าง

source ~ / .bash_aliases หรือ source ~ / .bashrc

ตัวอย่าง:

$ python - รุ่น

Python 2.7.6

$ python3 - รุ่น

Python 3.4.3

$ นามแฝง python = python3

$ python - รุ่น

Python 3.4.3


10

คุณสามารถเพิ่มนามแฝงสำหรับ pip ได้เช่นกัน (ใน. bashrc หรือ bash_aliases):

นามแฝง pip = 'pip3'

คุณหลายคนพบว่าการติดตั้ง python3 ใหม่ทั้งหมดชี้ไปที่ python3.x ดังนั้นคุณอาจต้อง:

นามแฝง pip = 'pip3.6'
นามแฝง python = 'python3.6'


8

ตอนแรกติดตั้ง python3 และ pip3

sudo apt-get install python3 python3-pip

จากนั้นในเทอร์มินัลของคุณทำงาน

alias python=python3

ตรวจสอบเวอร์ชันของ python ในเครื่องของคุณ

python --version

8

เพียงทำตามขั้นตอนเหล่านี้เพื่อช่วยเปลี่ยน python เริ่มต้นเป็น python เวอร์ชันที่อัปเกรดใหม่ ทำงานได้ดีสำหรับฉัน

  • sudo apt-install python3.7 ติดตั้ง python เวอร์ชันล่าสุดที่คุณต้องการ
  • cd /usr/bin ป้อนไดเร็กทอรีรูทที่ติดตั้ง python
  • sudo unlink pythonหรือsudo unlink python3. ยกเลิกการเชื่อมโยง python เริ่มต้นปัจจุบัน
  • sudo ln -sv /usr/bin/python3.7 python เชื่อมโยงเวอร์ชัน python ที่ดาวน์โหลดใหม่
  • python --version ตรวจสอบเวอร์ชัน python ใหม่แล้วคุณก็พร้อมใช้งาน

5

ตามที่กล่าวไว้update-alternatives --installต้องการอาร์กิวเมนต์ <link> <name> <path> และ <priority>

คุณมีลิงค์ ( /usr/bin/python) ชื่อ ( python) และเส้นทาง ( /usr/bin/python3) คุณไม่มีลำดับความสำคัญ

update-alternatives --help พูดว่า:

<priority> เป็นจำนวนเต็ม ตัวเลือกที่มีตัวเลขสูงกว่าจะมีลำดับความสำคัญสูงกว่าในโหมดอัตโนมัติ

ดังนั้นเพียงแค่ใส่100หรืออะไรบางอย่างต่อท้าย


5

ทำ

cd ~
gedit .bash_aliases

จากนั้นเขียนอย่างใดอย่างหนึ่ง

alias python=python3

หรือ

alias python='/usr/bin/python3'

บันทึกไฟล์ปิดเทอร์มินัลแล้วเปิดอีกครั้ง
ตอนนี้คุณน่าจะสบายดี! ลิงค์



3

สำหรับแนวทางอื่นที่ไม่รุกรานผู้ใช้ปัจจุบันเท่านั้น:

# First, make $HOME/bin, which will be automatically added to user's PATH
mkdir -p ~/bin
# make link actual python binaries
ln -s $(which python3) python
ln -s $(which pip3) pip

python pip จะพร้อมในเปลือกใหม่


3

ในการเปลี่ยน Python 3.6.8 เป็นค่าเริ่มต้นใน Ubuntu 18.04 จากงูหลาม 2.7 update-alternativesคุณสามารถลองใช้เครื่องมือบรรทัดคำสั่ง

sudo update-alternatives --config python

หากคุณได้รับข้อผิดพลาด "ไม่มีทางเลือกอื่นสำหรับ python" ให้ตั้งค่าทางเลือกด้วยตัวคุณเองโดยใช้คำสั่งต่อไปนี้:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2

เปลี่ยนเส้นทาง /usr/bin/python3ไปยังเวอร์ชัน python ที่คุณต้องการตามนั้น

อาร์กิวเมนต์สุดท้ายระบุว่าลำดับความสำคัญหมายถึงหากไม่มีการเลือกทางเลือกอื่นด้วยตนเองทางเลือกที่มีลำดับความสำคัญสูงสุดจะถูกตั้งค่า ในกรณีของเราเราได้กำหนดลำดับความสำคัญ 2 สำหรับ/usr/bin/python3.6.8และด้วยเหตุ/usr/bin/python3.6.8นี้จึงถูกตั้งค่าเป็นเวอร์ชัน python เริ่มต้นโดยอัตโนมัติโดยคำสั่ง update-alternate

เราสามารถสลับระหว่างเวอร์ชันทางเลือกของ python ที่ระบุไว้ด้านบนได้ตลอดเวลาโดยใช้คำสั่งด้านล่างและป้อนหมายเลขตัวเลือก:

update-alternatives --config python

1

วิธีที่ดีที่สุดใน ubuntu 18.04 ซึ่งจะใช้ได้กับผู้ใช้ทุกคนคือ

sudo vim /etc/bash.bashrc
add lines
alias python=python3
alias pip=pip3

บันทึกการเปลี่ยนแปลงและเริ่มต้นใหม่

หลังจากรีสตาร์ทเวอร์ชันของ python 3 ที่คุณมีในระบบพร้อมกับ python 2.7 จะถูกยึดเป็นค่าเริ่มต้น คุณสามารถเจาะจงได้มากขึ้นโดยพูดสิ่งต่อไปนี้ในนามแฝงหากคุณมี python 3 หลายเวอร์ชัน

sudo vim /etc/bash.bashrc
add lines
alias python=python3.6
alias pip=pip3.6

0

เพียงแค่ลบpython-is-python2:

sudo apt purge python-is-python2

และติดตั้งpython-is-python3:

sudo apt install python-is-python3

มันจะทำให้กระบวนการเปลี่ยนไปใช้ python3 ใหม่โดยอัตโนมัติ คุณสามารถเลือกที่จะกำจัดแพ็คเกจที่เหลือได้ในภายหลัง:

sudo apt autoremove && sudo apt autoclean

0

คุณไม่ได้ใส่อาร์กิวเมนต์ลำดับความสำคัญ

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 5

คุณสามารถแทนที่ 5 ด้วยลำดับความสำคัญใดก็ได้ที่คุณต้องการ ทางเลือกที่มีลำดับความสำคัญสูงกว่าจะมีลำดับความสำคัญมากกว่าลำดับความสำคัญต่ำกว่า


0

กำหนดลำดับความสำคัญสำหรับ python เริ่มต้นในเทอร์มินัล Linux โดยเพิ่มสิ่งนี้:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1

ที่นี่เรากำหนดpython3ให้มีลำดับความสำคัญ 10 และpython2ลำดับความสำคัญ 1 ซึ่งจะทำให้python3python เริ่มต้น หากคุณต้องการให้ Python2 เป็นค่าเริ่มต้นให้จัดลำดับความสำคัญของ python2 ให้สูงกว่า python3


-2

ในตอนแรกตรวจสอบให้แน่ใจว่าได้ติดตั้ง Python3 บนคอมพิวเตอร์ของคุณแล้ว

ไปที่เทอร์มินัลของคุณแล้วพิมพ์:

cd ~/ เพื่อไปที่โฮมไดเร็กทอรีของคุณ

หากคุณยังไม่ได้ตั้งค่า.bash_profileให้พิมพ์touch .bash_profileเพื่อสร้าง. bash_profile

หรือพิมพ์ open -e .bash_profileเพื่อแก้ไขไฟล์

คัดลอกและบันทึก alias python=python3ใน. bash_profile

ปิดและเปิด Terminal ของคุณอีกครั้ง จากนั้นพิมพ์คำสั่งต่อไปนี้เพื่อตรวจสอบว่าPython3เป็นเวอร์ชันเริ่มต้นของคุณในขณะนี้หรือไม่:

python --version

คุณควรเห็นpython 3.xyเป็นเวอร์ชันเริ่มต้นของคุณ

ไชโย!


วิธีนี้ได้อธิบายไว้แล้วในคำตอบที่ต้องการสำหรับคำถามนี้ และคำตอบของคุณไม่ได้มีส่วนช่วยอะไรเลย
tripulse
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.