Điểm:0

Trong Ubuntu 20.04, làm cách nào để cập nhật Python 3.8 lên 3.9 và sử dụng IDLE Shell 3.9 thay vì 3.8 như mặc định của tôi?

lá cờ co
SBL

Tôi đang dùng Ubuntu 20.04. Tôi đã tự hỏi tại sao ngay cả sau khi vào

Sudo apt cài đặt python 3.9

trong thiết bị đầu cuối, nhưng tôi vẫn nhận được python 3.8.10 khi tôi nhập python3 --version. Làm cách nào để biến nó thành 3.9, để khi tôi mở IDLE, tôi nhận được "IDLE Shell 3.9.6" thay vì "IDLE Shell 3.8.10"?

Tôi mới bắt đầu sử dụng Ubuntu và Linux và có thể chưa hiểu rõ một số điều.

ChanganAuto avatar
lá cờ us
Một trong những điều đầu tiên bạn *phải* hiểu là KHÔNG gây rối với python vì nó là một phần không thể thiếu của HĐH.
lá cờ ru
***KHÔNG*** gây rối với Python được cài đặt trên hệ thống! **ĐIỀU NÀY SẼ PHÁ HOẠI KHẢ NĂNG LÀM BẤT CỨ ĐIỀU GÌ TRÊN HỆ THỐNG CỦA BẠN!** Quản lý gói, cập nhật, mọi thứ đều có thành phần phụ thuộc Python phụ thuộc vào các phiên bản Python do hệ thống cài đặt.
lá cờ ru
Tôi đang xem xét một giải pháp thay thế để sử dụng IDLE với Python 3.9.x được cài đặt qua PyENV trong không gian người dùng, nhưng tôi chưa có giải pháp đó - nếu tôi tìm ra cách hiệu quả, tôi sẽ cho bạn biết và đăng tất cả nội dung này như một câu trả lời.
user535733 avatar
lá cờ cn
Nếu bạn muốn sử dụng phiên bản Python3 mới hơn, thì cách dễ nhất là chỉ cần sử dụng bản phát hành Ubuntu mới hơn tương ứng. 20,04 (LTS) = Py3,8. 21.04 (không phải LTS) = Py3.9
lá cờ ru
@ user535733 Không phải ai cũng muốn rời khỏi bản phát hành LTS. Đó là lý do tại sao các giải pháp khác tồn tại. :)
user535733 avatar
lá cờ cn
@ThomasWard chắc chắn rồi.
Điểm:1
lá cờ ru

ĐỪNG lộn xộn với Python được cài đặt trên hệ thống! ĐIỀU NÀY SẼ PHÁ HỦY KHẢ NĂNG LÀM BẤT CỨ ĐIỀU GÌ TRÊN HỆ THỐNG CỦA BẠN! Quản lý gói, cập nhật, mọi thứ đều có thành phần phụ thuộc Python phụ thuộc vào phiên bản Python do hệ thống cài đặt.


Ở đó một cách để cài đặt Python mới hơn để làm việc với nó và sử dụng IDLE trên nó, nhưng nó không đơn giản và dựa vào một dự án bên ngoài (mà tôi không có liên kết nào) được gọi là pyenv trên GitHub cho phép bạn chạy nhiều bản cài đặt Python cạnh nhau và sử dụng miếng chêm để đảm bảo rằng phiên bản bạn MUỐN sử dụng có sẵn.

Bạn phải điều chỉnh cài đặt kho lưu trữ của mình tại đây ngay bây giờ! Chúng tôi cần repos nguồn (được xác định bởi deb-src dòng trong /etc/apt/sources.list) được bật cho kho lưu trữ mà bạn đã bật.

Nếu bạn là người dùng GUI, hãy tham khảo trang này trên Ubuntu wiki để quản lý các kho lưu trữ trong GUI. Bạn sẽ cần bật tùy chọn "Mã nguồn" trong tab "Phần mềm Ubuntu".

Nếu bạn đang sử dụng dòng lệnh, dù sao thì bạn cũng không nên sử dụng IDLE, nhưng bạn có thể chỉnh sửa các nguồn thông qua Dòng lệnh bằng cách tham khảo trang này trên tài liệu trợ giúp của Ubuntu để quản lý nguồn CLI. Trong /etc/apt/sources.list, đối với mỗi dòng bạn có một nợ... dòng không được bình luận, nên có một bình luận deb-src dòng để khớp - bỏ ghi chú rằng deb-src dòng và sau đó chạy cập nhật sudo apt. Nếu không có dòng deb-src nào, thì với mọi dòng không ghi chú cuộc tranh luận dòng trùng lặp dòng đó nhưng thay đổi mục nhập mới (dòng trùng lặp) để bắt đầu bằng deb-src.

Khi bạn đã hoàn thành việc này, thì chúng ta cần thiết lập các phụ thuộc pyenv.

Cài đặt pyenv trong môi trường của bạn.

PyENV cung cấp trình cài đặt tự động - ở đây trên GitHub - kèm theo hướng dẫn sử dụng. Về cơ bản, những hướng dẫn đó là:

cuộn tròn https://pyenv.run | đánh đập

KHÔNG chạy cái này với superuser, nó không cần thiết! Sau khi cài đặt chạy, nó sẽ hướng dẫn bạn thêm một số dòng vào ~/.bashrc tập tin. Làm những gì nó nói và sau đó đóng và mở lại thiết bị đầu cuối của bạn.

Một khi đã ở đó, hãy chắc chắn rằng pyenv hoạt động bằng cách chạy phiên bản pyenv và xem những gì được liệt kê (nó chỉ nên liệt kê 'hệ thống').

Khi đã xong, chúng tôi cần cung cấp cho bạn các phụ thuộc bản dựng cần thiết để hệ thống của bạn cài đặt và xây dựng Python!

ĐẦU TIÊN, bạn cần một số phụ thuộc xây dựng. Tất cả đều được điều chỉnh cho các phiên bản Python lõi khác nhau trong mỗi bản phát hành, chỉ thực thi các dòng liên quan đến bản phát hành của bạn.

Nhận các phụ thuộc xây dựng. Đối với Python và IDLE, bạn cũng cần các thư viện TK, vì vậy trước tiên chúng tôi sẽ lấy tất cả các phụ thuộc.

Đối với ngày 18.04:

Sudo apt build-dep python3.6 python3-tk

Đối với ngày 20.04:

sudo apt build-dep python3.7 python3-tk

Đối với 21.04 (và 21.10 sau khi được phát hành):

sudo apt build-dep python3.9 python3-tk

Điều này sẽ cài đặt RẤT NHIỀU thư viện. Bạn cần phải cho phép chúng được cài đặt. Thao tác này sẽ cài đặt TẤT CẢ các phụ thuộc bản dựng cần thiết để Python xây dựng và vận hành; điều này kéo các phụ thuộc cho các phiên bản Python đã cài đặt hệ thống nhưng sẽ hoạt động tốt đối với các phiên bản Python sau này mà pyenv sẽ cài đặt trong không gian người dùng.

Bây giờ, khi tất cả những thứ này đã được cài đặt, chúng tôi cần thiết lập pyenv của bạn và cài đặt phiên bản Python trong không gian người dùng!

Giả sử rằng phiên bản pyenv hiển thị cho bạn đầu ra, sau đó chúng tôi có thể chuyển sang thiết lập nội dung của bạn.

Chạy cài đặt pyenv 3.9.7. Điều này sẽ tải xuống tarball Python 3.9.7 từ Python ngược dòng, sau đó xây dựng, biên dịch và cài đặt Python 3.9.7 vào không gian người dùng cho pyenv. Điều này sẽ không gây hại cho Python trên hệ thống của bạn.

Sau khi hoàn thành, hãy chạy pyenv cục bộ 3.9.7. Thao tác này sẽ thiết lập các miếng chêm trỏ các tệp thực thi Python tới các phiên bản cục bộ cho trình bao của riêng bạn. Tuy nhiên hãy đảm bảo rằng pyenv toàn cầu kết quả vẫn hiển thị 'hệ thống' - nếu không, bạn sẽ phá vỡ apt và những thứ khác.

Bây giờ, bạn có thể lấy IDLE và bắt đầu sử dụng nó.

Đầu tiên, xác minh ống3 là trong .pyenv/shims đường dẫn của thư mục nhà của bạn. Điều đó có nghĩa là pyenv được thiết lập đúng cách. Chạy pip3 --versionvà đảm bảo rằng nó đang hiển thị pip ... từ (đường dẫn dài trong /home/$USER/.pyenv/...) (python 3.9) (thay thế các bit 'đường dẫn dài' bằng đường dẫn thực tế để bạn tham khảo.

Nếu tất cả đều ổn và nó hiển thị 'python 3.9' ở đó, thì bạn có thể chạy cài đặt pip3 --upgrade --user nhàn rỗi và cài đặt IDLE. Sau đó, bạn có thể thực hiện từ dòng lệnh nhàn rỗi và khởi chạy trình chỉnh sửa IDLE. Bạn sẽ phải tự tạo một lối tắt trên GUI để nó hoạt động trực tiếp (xin lỗi nằm ngoài phạm vi của bài đăng này!) dưới dạng một ứng dụng GUI mà không cần mở nó ở phía Python của mọi thứ trên Command LIne trước. Tuy nhiên, điều này sẽ giúp IDLE chạy đúng cách.

(Tuy nhiên, nó là một ứng dụng TK, nó trông hơi... xấu... chỉ là một thông tin.)

Đã thử nghiệm trên hệ thống 20.04, nhưng pyenv sẽ hoạt động tốt với các bản phát hành Ubuntu sau này.

SBL avatar
lá cờ co
SBL
Ok, tôi mới nhận ra rằng bạn không cần phải nhàn rỗi để lập trình python trên ubuntu và bạn chỉ có thể sử dụng thiết bị đầu cuối để tạo và chạy các tệp python, trong khi viết mã trên trình soạn thảo văn bản. Nhưng tôi đã cài đặt nhàn rỗi từ thiết bị đầu cuối trước khi nhận ra điều này. Tôi có nên gỡ cài đặt nhàn rỗi bây giờ không? Nếu vậy làm thế nào tôi nên làm điều đó?
lá cờ ru
@SBL nếu bạn cài theo hướng dẫn của mình thì `pip3 uninstall idle`. Tuy nhiên, nếu bạn muốn Python 3.9, bạn vẫn cần sử dụng các hướng dẫn ở trên mà tôi đã viết ngoại trừ việc cài đặt IDLE. Đừng gây rối với hệ thống python của bạn)
SBL avatar
lá cờ co
SBL
Cảm ơn vì đã cảnh báo
John Mee avatar
lá cờ th
Downvote cho được báo động. OP đã cài đặt từ repo chính thức bằng công cụ chính thức. Làm như vậy sẽ không phá vỡ hệ thống của họ, hoặc nếu làm như vậy thì sẽ có một vấn đề chính thức phổ biến. Tất cả những gì họ cần là một lời giải thích tại sao đặt nó làm mặc định là một ý tưởng tồi và một số lời khuyên về cách gọi python3.9 một cách rõ ràng.

Đă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.