วิธีเปลี่ยนเป็น python3 อย่างปลอดภัยเป็นค่าเริ่มต้นหลังจากอัปเกรดเป็น Ubuntu 18.04


14

เนื่องจากpython3เป็นรุ่นไพ ธ อนเริ่มต้นใน Ubuntu 18.04 และpython2จะไม่ถูกจัดส่งตามค่าเริ่มต้นในการติดตั้ง Ubuntu 18.04 ที่สดใหม่ฉันจะpython3เริ่มต้นได้อย่างไรหลังจากอัปเกรดเป็น Ubuntu 18.04 (จาก 16.04) ปัจจุบันหลังจากการอัปเกรดpython2เป็นยังคงเป็นค่าเริ่มต้น (เช่นpythonคำสั่งนำทางไปยังpython2ฯลฯ ) อย่างไรก็ตามการลบpythonแพคเกจจะส่งผลให้มีการลบแพ็กเกจจำนวนมากที่พึ่งพามันดังนั้นนี่ไม่ใช่ตัวเลือกที่นี่

เป็นการดีที่ฉันต้องการลบการpython2พึ่งพามากที่สุด บางทีกระบวนการอัปเกรดอาจได้รับการออกแบบในลักษณะที่ตรวจสอบแพ็กเกจทั้งหมดไม่ว่าจะยังขึ้นอยู่python2กับการพึ่งพาและเก็บรวบรวมการpython2อ้างอิงทั้งหมดที่สามารถถูกแทนที่ด้วยการpython3พึ่งพาที่เท่าเทียมกัน (ซึ่งจะได้รับการแก้ไขโดยการอัพเกรด)


โปรดตรวจสอบถ้อยคำใหม่ ก่อนหน้านี้ค่อนข้างชัดเจนกับสิ่งที่คุณถาม พยายามเรียงลำดับจากชื่อโพสต์ของคุณ
Juan Antonio

ขอบคุณมากสำหรับการแก้ไข @JanAntonio การแก้ไขส่วนใหญ่ดูดี เพิ่งแก้ไขเพิ่มเติมเพื่อให้คำถามนี้ถูกทิศทาง
zazi

มันปลอดภัยหรือไม่อะไรคือจุดสิ้นสุดของการลบ python2 หรือปล่อยทิ้งไว้ หากมีบางสิ่งที่ต้องการ!
George Udosen

2
ในความเป็นจริง python 2 ไม่ได้ติดตั้งเป็นค่าเริ่มต้นใน 18.04 ดังนั้นถ้าคุณมีมันเป็นเพราะคุณติดตั้งแพ็กเกจเพิ่มเติม (หรือทำการอัพเกรดด้วยแพ็คเกจที่ติดตั้งไว้แล้ว) ซึ่งยังคงต้องใช้ python 2 นั่นคือ 3.x เป็นค่าเริ่มต้นไม่ได้หมายความว่าไม่มีสิ่งใดอีกแล้วที่ใช้ 2.x ในไฟล์เก็บถาวร 20.04 จะไม่มี python 2.x อีกต่อไปเนื่องจากจะไม่ได้รับการสนับสนุนจากอัปสตรีม ณ จุดนั้น
dobey

"จุดสิ้นสุดของการลบ python2 คืออะไร" - เป็นระบบที่ค่อนข้างสะอาด การติดตั้งไพ ธ อนของฉันซึ่งจะแตกอย่างใดหลังจากการอัพเกรด
zazi

คำตอบ:


15

โพสต์นี้เป็นบิตเก่า แต่ผมเชื่อว่าเป็นทางเลือกที่ดีกว่าที่มีอยู่: update-alternativesป้อน ต่อไปนี้จะตั้งค่า/usr/bin/pythonเป็นค่าเริ่มต้นเป็น 2.7 แต่มี 3.6 เมื่อคุณต้องการ:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 20
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 10

ลำดับความสำคัญสูงสุดที่นี่ใช้เป็นตัวเลือก "อัตโนมัติ" /usr/bin/pythonแต่คุณสามารถสลับได้โดยsudo update-alternatives --config pythonง่าย


1
คำตอบที่ดี ในกรณีของฉัน python2.7 ถูกติดตั้งโดย nodejs / NPM pythonและตั้งเป็นค่าเริ่มต้นสำหรับการอย่างใด ผมใช้ในการลบหลามทั้งหมดแล้วเพิ่มหลามเดียวที่ฉันต้องการที่จะใช้sudo update-alternatives --remove-all python sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 10สิ่งที่ดีที่ควรรู้คือsudo update-alternatives --list pythonการดูว่าอะไรคืออะไร
philshem

1
คุณอาจต้องการที่จะทำsudo apt install python3-pipและsudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 10
Daniel

11

ในการลบ python2 โดยสมบูรณ์คุณต้องกำจัดpython2.x-minimalแพ็คเกจที่ทำโดย

sudo apt purge python2.x-minimal

แทนที่ x ด้วย python 2 รุ่นที่แน่นอนบนระบบของคุณ แต่ให้แน่ใจว่าได้ดูแพ็คเกจอื่น ๆ ที่ถูกลบเนื่องจากคุณอาจมีแพ็คเกจที่ยังคงขึ้นอยู่กับไพ ธ อน 2 แม้หลังจากการอัพเกรดและแพ็คเกจเหล่านั้นจะถูกถอนการติดตั้งเช่นกันและหยุดทำงาน


ไม่มีสิ่งใดในฐานะล่ามไพ ธ อน 'เริ่มต้น' เพราะมันขึ้นอยู่กับไฟล์จริงที่/usr/bin/pythonชี้ไปที่การเปลี่ยนไปเป็นไพ ธ อนใช้lnคำสั่งเพื่ออัปเดตลิงก์ตัวอย่างเช่นสมมติว่าคุณต้องการให้ชี้ไปที่ไพ ธ อน 3.6

sudo ln -sfn /usr/bin/python3.6 /usr/bin/python

อีกทางเลือกหนึ่งหากคุณต้องการสิ่งนี้สำหรับผู้ใช้ของคุณคุณสามารถตั้งค่าเป็นนามแฝงของคุณใน.bashrcการทำสิ่งนั้นเปิด~/.bashrcในเครื่องมือแก้ไขที่คุณเลือกและเพิ่มบรรทัดต่อไปนี้

alias python='python3.6' 

"ตามที่คุณอาจจะมีแพ็คเกจที่ยังคงพึ่งพา python 2 แม้หลังจากการอัปเกรด" <- ใช่และความตั้งใจของฉันคือการกำจัดการพึ่งพานี้เนื่องจากไม่จำเป็นจริงๆเนื่องจาก Ubuntu 18.04 ทำงานโดยปราศจากการpython2พึ่งพาโดยใช้ค่าเริ่มต้นpython3อ้างอิง / แพคเกจ
zazi

1
มันปลอดภัยหรือไม่อะไรคือจุดสิ้นสุดของการลบ python2 หรือปล่อยทิ้งไว้ หากมีบางสิ่งที่ต้องการ!
George Udosen

0

ใน 16.04 ของฉัน/usr/bin/pythonเป็นเพียงลิงค์ไปยัง/usr/bin/python2.7ดังนั้นฉันคิดว่าคุณจะต้องเปลี่ยนลิงค์นี้ให้ชี้ไปที่/usr/bin/python3.x( xแน่นอนเพียงพอ)


คุณสามารถชี้/usr/bin/pythonไป/usr/bin/python3ที่ซึ่งเป็นลิงค์ไปยัง python3 เวอร์ชั่นล่าสุดที่ติดตั้ง ~/.bashrcหรือเพียงแค่นามแฝงหรือฟังก์ชั่นในของคุณ ตัวเลือกมากมาย ;-)
Kev Inski

ไม่ฉันเดาว่านี่ไม่ใช่สิ่งที่ฉันอยากทำที่นี่จริงๆ ฉันต้องการกำจัดpython2ในระบบของฉัน (เนื่องจากเป็นกรณีเริ่มต้นเมื่อติดตั้ง Ubuntu สด 18.04 ซึ่งpython3เป็นค่าเริ่มต้นและpython2ไม่ได้ติดตั้งตามค่าเริ่มต้น)
zazi

2
@zazi python2ฉันจะไม่แนะนำกวาดล้าง ดูเหมือนว่าแพ็คเกจอื่น ๆ นั้นขึ้นอยู่กับมัน คุณมีข้อเสียด้วยการpython2ติดตั้งอย่างต่อเนื่องหรือไม่?
Kev Inski

ฉันไม่มีข้อเสียในการpython2ติดตั้งหากจำเป็นจริงๆ แต่ฉันต้องการตั้งค่าpython3เริ่มต้นอย่างชัดเจนเช่นลบpython2บ่อยที่สุด (และการติดตั้ง Ubuntu 18.04 ใหม่ทั้งหมดแสดงให้เห็นว่าเป็นไปได้)
zazi

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