Điểm:0

Sự cố cài đặt python cũ, cập nhật python3-ditils

lá cờ cn

Tôi đã gặp vấn đề này nhiều lần và không thể giải quyết được. Tôi vừa biên dịch và cài đặt thủ công python 3.10 trên Ubuntu 20.04, vì một số lý do, tôi nghĩ rằng bản mới nhất có thể là bản tốt nhất, tuy nhiên với python thì điều này còn gây tranh cãi!

Bây giờ khi tôi cố gắng thực hiện một số cập nhật, tôi gặp phải các lỗi phổ biến như lỗi này, cho thấy hệ thống không tìm thấy 'py_compile.py'?

Đang thiết lập python3-distutils (3.8.10-0ubuntu1~20.04) ...
/usr/bin/python3.9: không thể mở tệp '/usr/lib/python3.9/py_compile.py': [Errno 2] Không có tệp hoặc thư mục như vậy

Tuy nhiên, khi tôi tìm kiếm, tôi có nhiều bản sao của tệp này trong hệ thống của mình, bao gồm cả

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

Tập tin này nên ở đâu để hệ thống tìm thấy nó? Tôi có cần chỉ định một thư mục cài đặt khác cho Ubuntu, trái ngược với hầu hết các hệ thống linux khác, khi định cấu hình trước khi thực hiện, thực hiện các giai đoạn biên dịch cài đặt không?

Tôi thậm chí sẽ không giải trí bằng cách sử dụng thanh lọc hoặc bất cứ thứ gì tương tự, đã loại bỏ các phần lớn của toàn bộ hệ thống trước khi thực hiện việc này, mọi thứ dường như phụ thuộc vào python! Cám ơn. J

lá cờ us
`/usr/bin/python3.9: không thể mở tệp` -- Ubuntu 20.04 có python 3.8. Làm thế nào mà bạn có được 3,9 ở đó? Ngoài ra, bạn đã thay thế python mặc định (3.8) bằng phiên bản mới hơn chưa?
Jim Maas avatar
lá cờ cn
Tôi đã tải xuống 3.9.tar.gz, giải nén nó, định cấu hình, tạo, thực hiện cài đặt nhưng thư mục cài đặt mặc định xuất hiện không chính xác cho Ubuntu? Cám ơn
lá cờ us
Đó không phải là cách an toàn để cài đặt python trong Ubuntu (trừ khi bạn biết mình đang làm gì). Xem câu trả lời của tôi.
Điểm:2
lá cờ sa

py_compile.py được cung cấp bởi libpython3.8-minimal trong Ubuntu 20.04. Mở terminal và gõ:

Sudo apt cài đặt python3-all libpython3.8-minimal
Sudo update-alternatives --config python3 # chọn python3.8 cho chế độ tự động
Sudo apt cài đặt python3-distutils
cập nhật sudo apt
nâng cấp sudo apt

Ngoài đoạn mã trên, bạn đã phá vỡ các liên kết tượng trưng từ các phiên bản Python mà bạn đã xóa, một số phiên bản này ban đầu được cài đặt thủ công. Các liên kết tượng trưng bị hỏng này đến các phiên bản Python 3.X đã xóa đang khiến apt (yêu cầu python3) hoạt động không đúng cách. Bạn có thể tìm thấy các liên kết tượng trưng bị hỏng này bằng cách làm theo hướng dẫn trong Làm cách nào tôi có thể tìm thấy các liên kết tượng trưng bị hỏng.

Nếu bạn tìm thấy bất kỳ liên kết tượng trưng đáng ngờ nào, bạn có thể quét chúng bằng liên kết tượng trưng bưu kiện ( Sudo apt cài đặt liên kết tượng trưng ) và tìm kiếm bất kỳ lủng lẳng liên kết. lủng lẳng liên kết là những liên kết mà mục tiêu của liên kết hiện không tồn tại, vì vậy có thể xóa các liên kết lơ lửng một cách an toàn. Nếu bạn không chắc liệu một liên kết tượng trưng có thể được xóa một cách an toàn hay không, bạn có thể đổi tên liên kết bằng cách nối thêm phần mở rộng .bak vào cuối tên của nó để bạn có thể nhanh chóng khôi phục liên kết bằng cách xóa phần mở rộng .bak khỏi tên của nó.

Jim Maas avatar
lá cờ cn
Cảm ơn karel, vì vậy điều này sẽ trở lại python 3.8 ... Đúng không? Tôi nghĩ rằng tôi bắt đầu thấy rằng không thể sử dụng python 3.9 hoặc 3.10 trên Ubuntu 20.04, quá nhiều thứ được xây dựng bằng 3.8 và cài đặt phiên bản mới có làm hỏng hệ thống không? Điều này nói chung có đúng không?
karel avatar
lá cờ sa
Đúng rồi. Hoàn nguyên về python3.8 có thể giải quyết vấn đề quản lý gói và sau đó bạn có thể chọn python3.9 hoặc python3.10 với `chế độ thủ công` Trạng thái bằng cách chạy `sudo update-alternatives --config python3` và nhấn để giữ lựa chọn hiện tại[*] hoặc nhập số lựa chọn.
Jim Maas avatar
lá cờ cn
Dòng đầu tiên hoạt động tốt, đã cài đặt cả hai, nhưng dòng thứ hai không tìm thấy 3.8, hãy lấy "Sudo update-alternatives --config python3" Chỉ có một giải pháp thay thế trong nhóm liên kết python3 (cung cấp /usr/bin/python3.9): /usr/local/bin/python3.9 Không có gì để định cấu hình." Tôi có thể vào các thư mục mà tôi đã biên dịch 3.9 và 3.10 và thực hiện gỡ cài đặt nhưng sợ rằng nó sẽ phá vỡ toàn bộ hệ thống của tôi? Làm cách nào tôi có thể tìm các giải pháp thay thế cập nhật để tìm 3.8? Nó được tìm thấy nếu tôi cập nhật -alternatives --config python (tức là không phải python3). Thx. J.
karel avatar
lá cờ sa
Bỏ qua dòng thứ hai bây giờ. Có thể khởi động lại sẽ cho phép bạn chọn 3.8. Tiếp tục với ba lệnh tiếp theo và kiểm tra xem điều đó có giải quyết được vấn đề trong câu hỏi của bạn không.
Jim Maas avatar
lá cờ cn
Tôi đã làm sai điều gì đó! "$trăn Python 3.10.0 (mặc định, ngày 24 tháng 11 năm 2021, 07:40:12) [GCC 9.3.0] trên linux" trong khi "$ which python /usr/bin/python" và "$ /usr/bin/python Python 3.8.10 (mặc định, ngày 28 tháng 9 năm 2021, 16:10:42)". Chắc tôi gặp vấn đề về câu lệnh đường dẫn? Có quá nhiều đường dẫn được chỉ định?
karel avatar
lá cờ sa
Bạn có nhớ mình đã cài đặt Python 3.10.0 như thế nào không? Nó được cài đặt từ ppa:deadsnakes/ppa? Nếu vậy, nếu bạn có thể xóa ppa:deadsnakes/ppa và chạy `sudo apt update` thì bạn có thể gỡ cài đặt Python 3.10.0.
Jim Maas avatar
lá cờ cn
Khá dũng cảm (dại dột!) đã tải xuống tar.gz, từ python.org, giải nén, định cấu hình với cài đặt mặc định, thực hiện, sudo thực hiện cài đặt. Tôi vừa đi đến thư mục đó và không có mục tiêu cho sudo make uninstall!
karel avatar
lá cờ sa
Hãy để chúng tôi [tiếp tục cuộc thảo luận này trong cuộc trò chuyện](https://chat.stackexchange.com/rooms/131729/discussion-between-karel-and-jim-maas).
Điểm:1
lá cờ us

Cách an toàn nhất để cài đặt trăn3.10 trong Ubuntu 20.04 là sử dụng rắn chết PPA.

Sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get cập nhật
Sudo apt cài đặt python3.10

Và sau đó gọi nó với trăn3.10. Vì trăn3.9, cài đặt với Sudo apt cài đặt python3.9.


Bạn chưa mô tả tất cả những thay đổi bạn đã thực hiện đối với hệ thống của mình (dường như bạn có python3.9 và python3.10).

Trong trường hợp bạn chưa xóa phiên bản python mặc định (3.8), bạn có thể đặt lại phiên bản mặc định bằng thay thế cập nhật --config python và chọn python3.8.

Trong trường hợp bạn đã thay thế phiên bản mặc định bằng python3.9, bạn sẽ phải cài đặt lại Ubuntu. Các thành phần hệ thống trong Ubuntu 20.04 được thiết kế để hoạt động với python3.8.

Jim Maas avatar
lá cờ cn
Xin cảm ơn vì điều này, vậy bạn có gợi ý rằng không có cách nào để cài đặt các phiên bản mới từ 3.8 trở lên, lên Ubuntu 20.04 và không phá vỡ toàn bộ hệ thống không? Tôi đoán khi bạn nói "cài đặt lại Ubuntu", ý bạn là với phiên bản mới hơn, như 21.10?
lá cờ us
Tất nhiên bạn có thể sử dụng python3.9. Bạn chỉ cần thực thi nó với `python3.9`. Nhưng gán phiên bản 3.8 mặc định cho python. Bạn có thể cài đặt lại bất kỳ phiên bản Ubuntu nào bạn muốn, nhưng không nên gây rối với phiên bản python mặc định (tất nhiên, bạn có thể cài đặt các phiên bản bổ sung, tuy nhiên, PPA deadsnakes chỉ hỗ trợ các phiên bản LTS của Ubuntu).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.