Score:0

ปัญหาการติดตั้ง python เก่า อัปเดต python3-distils

ธง cn

ฉันมีปัญหานี้หลายครั้งและไม่สามารถแก้ไขได้ ฉันเพิ่งรวบรวมและติดตั้ง python 3.10 บน Ubuntu 20.04 ด้วยตนเอง ด้วยเหตุผลบางอย่างคิดว่าล่าสุดน่าจะดีที่สุด แต่ด้วย python นี่เป็นที่ถกเถียงกัน!

ตอนนี้เมื่อฉันพยายามอัปเดต ฉันพบข้อผิดพลาดทั่วไปเช่นนี้ แสดงว่าระบบไม่พบ 'py_compile.py' ใช่หรือไม่

การตั้งค่า python3-distutils (3.8.10-0ubuntu1~20.04) ...
/usr/bin/python3.9: ไม่สามารถเปิดไฟล์ '/usr/lib/python3.9/py_compile.py': [Errno 2] ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว

อย่างไรก็ตาม เมื่อฉันค้นหา ฉันมีสำเนาของไฟล์นี้จำนวนมากในระบบรวมถึง

/usr/local/lib/python3.10/py_compile.py

ไฟล์นี้ควรอยู่ที่ไหนระบบจึงจะค้นหาเจอ ฉันจำเป็นต้องระบุไดเร็กทอรีการติดตั้งอื่นสำหรับ ubuntu หรือไม่ ซึ่งตรงข้ามกับระบบ linux อื่นๆ ส่วนใหญ่ เมื่อกำหนดค่าก่อนสร้าง ให้ติดตั้งขั้นตอนการคอมไพล์

ฉันจะไม่สนุกกับการใช้ purge หรืออะไรทำนองนั้น ฉันเคยลบส่วนใหญ่ของระบบทั้งหมดก่อนหน้านี้ด้วยการทำเช่นนี้ ทุกอย่างดูเหมือนจะขึ้นอยู่กับ python! ขอบคุณ. เจ

us flag
`/usr/bin/python3.9: ไม่สามารถเปิดไฟล์ได้` -- Ubuntu 20.04 มี python 3.8.0 คุณได้ 3.9 ที่นั่นได้อย่างไร? นอกจากนี้ คุณได้แทนที่ python เริ่มต้น (3.8) ด้วยเวอร์ชันที่ใหม่กว่าหรือไม่
Jim Maas avatar
cn flag
ฉันดาวน์โหลด 3.9.tar.gz, แตกไฟล์, กำหนดค่า, สร้าง, ทำการติดตั้ง แต่ไดเร็กทอรีการติดตั้งเริ่มต้นสำหรับ Ubuntu ไม่ถูกต้อง? ขอบคุณ
us flag
นั่นไม่ใช่วิธีที่ปลอดภัยในการติดตั้ง python ใน Ubuntu (เว้นแต่คุณจะรู้ว่ากำลังทำอะไรอยู่) ดูคำตอบของฉัน
Score:2
ธง sa

py_compile.py ให้บริการโดย libpython3.8-minimal ใน Ubuntu 20.04 เปิดเทอร์มินัลแล้วพิมพ์:

sudo apt ติดตั้ง python3-all libpython3.8-minimal
sudo update-alternatives --config python3 # เลือก python3.8 สำหรับโหมดอัตโนมัติ
sudo apt ติดตั้ง python3-distutils
อัปเดต sudo apt
sudo apt อัพเกรด

นอกจากโค้ดข้างต้นแล้ว คุณได้ทำลายลิงก์สัญลักษณ์จากเวอร์ชันของ Python ที่คุณลบไป ซึ่งบางเวอร์ชันได้รับการติดตั้งด้วยตนเอง ลิงก์สัญลักษณ์ที่เสียหายเหล่านี้ไปยัง Python 3.X เวอร์ชันที่ถูกลบทำให้ apt (ซึ่งต้องใช้ python3) ทำงานไม่ถูกต้อง คุณสามารถค้นหาลิงก์สัญลักษณ์ที่เสียเหล่านี้ได้โดยทำตามคำแนะนำใน ฉันจะค้นหา symlink ที่เสียหายได้อย่างไร.

หากคุณพบลิงก์สัญลักษณ์ที่น่าสงสัย คุณสามารถสแกนโดยใช้ การเชื่อมโยง บรรจุุภัณฑ์ ( sudo apt ติดตั้ง symlink ) และค้นหาใดๆ ห้อย ลิงค์ ห้อย ลิงก์คือลิงก์ที่ไม่มีเป้าหมายของลิงก์อยู่ ดังนั้นลิงก์ที่ห้อยอยู่สามารถลบออกได้อย่างปลอดภัย หากคุณไม่แน่ใจว่าสามารถลบลิงก์สัญลักษณ์ได้อย่างปลอดภัยหรือไม่ คุณสามารถเปลี่ยนชื่อลิงก์โดยใส่นามสกุล .bak ต่อท้ายชื่อ เพื่อให้คุณสามารถกู้คืนลิงก์ได้อย่างรวดเร็วโดยลบนามสกุล .bak ออกจากชื่อ

Jim Maas avatar
cn flag
ขอบคุณ karel ดังนั้นสิ่งนี้จะเปลี่ยนกลับไปเป็น python 3.8 ... ถูกต้องไหม ฉันคิดว่าฉันเริ่มเห็นว่าเป็นไปไม่ได้ที่จะใช้ python 3.9 หรือ 3.10 บน Ubuntu 20.04 มันถูกสร้างขึ้นโดยใช้ 3.8 มากเกินไปและการติดตั้งเวอร์ชันใหม่จะทำให้ระบบเสียหายหรือไม่ โดยทั่วไปถูกต้องหรือไม่
karel avatar
sa flag
ถูกต้อง. การย้อนกลับเป็น python3.8 อาจช่วยแก้ปัญหาการจัดการแพ็คเกจได้ จากนั้นคุณสามารถเลือก python3.9 หรือ python3.10 ที่มีสถานะ `manual mode' โดยเรียกใช้ `sudo update-alternatives --config python3` และกด เพื่อคงตัวเลือกปัจจุบัน[*] หรือหมายเลขการเลือกประเภท
Jim Maas avatar
cn flag
บรรทัดแรกทำงานได้ดี ติดตั้งทั้งคู่ แต่บรรทัดที่สองไม่พบ 3.8 รับสิ่งนี้ "sudo update-alternatives --config python3 มีเพียงทางเลือกเดียวในกลุ่มลิงก์ python3 (ระบุ /usr/bin/python3.9): /usr/local/bin/python3.9 ไม่มีอะไรต้องกำหนดค่า" ฉันสามารถไปที่ไดเร็กทอรีที่ฉันคอมไพล์ 3.9 และ 3.10 และทำการถอนการติดตั้ง แต่กลัวว่ามันจะทำให้ระบบทั้งหมดของฉันเสียหาย ฉันจะหาทางเลือกในการอัปเดตเพื่อหา 3.8 ได้อย่างไร พบถ้าฉันอัปเดต -ทางเลือก --config python (เช่น ไม่ใช่ python3) ขอบคุณ J.
karel avatar
sa flag
ข้ามบรรทัดที่สองไปก่อน บางทีการรีบูตอาจทำให้คุณเลือก 3.8 ดำเนินการต่อด้วยสามคำสั่งถัดไปและตรวจสอบว่าสามารถแก้ปัญหาในคำถามของคุณได้หรือไม่
Jim Maas avatar
cn flag
ฉันทำอะไรผิด! "$ หลาม Python 3.10.0 (ค่าเริ่มต้น 24 พ.ย. 2021, 07:40:12 น.) [GCC 9.3.0] บน linux" ในขณะที่ "$ ซึ่ง python /usr/bin/python" และ "$ /usr/bin/python Python 3.8.10 (ค่าเริ่มต้น 28 ก.ย. 2021, 16:10:42)" ฉันต้องมีปัญหาเกี่ยวกับคำสั่งเส้นทางหรือไม่ ระบุเส้นทางมากเกินไปหรือไม่
karel avatar
sa flag
คุณจำได้ไหมว่าคุณติดตั้ง Python 3.10.0 อย่างไร? ติดตั้งจาก ppa:deadsnakes/ppa หรือไม่ ถ้าเป็นเช่นนั้น หากคุณสามารถลบ ppa:deadsnakes/ppa และเรียกใช้ `sudo apt update` ได้ คุณสามารถถอนการติดตั้ง Python 3.10.0 ได้
Jim Maas avatar
cn flag
ค่อนข้างกล้าหาญ (โง่เขลา!) ​​ดาวน์โหลด tar.gz จาก python.org คลายซิป กำหนดค่าด้วยการตั้งค่าเริ่มต้น สร้าง sudo ทำการติดตั้ง ฉันเพิ่งไปที่ไดเร็กทอรีนั้นและไม่มีเป้าหมายสำหรับ sudo make uninstall!
karel avatar
sa flag
ให้เรา [ดำเนินการสนทนาต่อในการแชท](https://chat.stackexchange.com/rooms/131729/discussion-between-karel-and-jim-maas)
Score:1
ธง us

วิธีที่ปลอดภัยที่สุดในการติดตั้ง หลาม3.10 ใน Ubuntu 20.04 คือการใช้ งูพิษ PPA.

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get อัปเดต
sudo apt ติดตั้ง python3.10

แล้วเรียกด้วย หลาม3.10. สำหรับ หลาม3.9,ติดตั้งกับ sudo apt ติดตั้ง python3.9.


คุณไม่ได้อธิบายการเปลี่ยนแปลงทั้งหมดที่คุณได้ทำกับระบบของคุณ (ดูเหมือนว่าคุณมี python3.9 และ python3.10)

ในกรณีที่คุณยังไม่ได้ลบเวอร์ชันไพทอนเริ่มต้น (3.8) คุณสามารถรีเซ็ตเวอร์ชันเริ่มต้นด้วย ทางเลือกในการอัปเดต --config python แล้วเลือก python3.8

ในกรณีที่คุณได้แทนที่เวอร์ชันเริ่มต้นด้วย python3.9 แล้ว คุณจะต้องติดตั้ง Ubuntu ใหม่ ส่วนประกอบของระบบใน Ubuntu 20.04 ออกแบบมาเพื่อทำงานร่วมกับ python3.8

Jim Maas avatar
cn flag
ขอบคุณสำหรับสิ่งนี้ คุณกำลังแนะนำว่าไม่มีวิธีติดตั้งเวอร์ชันใหม่ที่ผ่านมา 3.8 บน Ubuntu 20.04 และไม่ทำให้ทั้งระบบเสียหายหรือไม่ ฉันเข้าใจเมื่อคุณพูดว่า "ติดตั้ง Ubuntu ใหม่" คุณหมายถึงเวอร์ชันที่ใหม่กว่าเช่น 21.10 หรือไม่
us flag
แน่นอนคุณสามารถใช้ python3.9 คุณเพียงแค่รันมันด้วย `python3.9` แต่กำหนดเวอร์ชันเริ่มต้น 3.8 ให้กับ python คุณสามารถติดตั้ง Ubuntu เวอร์ชันใดก็ได้ใหม่ตามที่คุณต้องการ แต่ไม่ควรยุ่งกับเวอร์ชัน python เริ่มต้น (แน่นอน คุณสามารถติดตั้งเวอร์ชันเพิ่มเติมได้ อย่างไรก็ตาม Deadsnakes PPA รองรับเฉพาะ Ubuntu เวอร์ชัน LTS เท่านั้น)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา