Python 2 đã biến mất?

Các nhà phát triển quy trình làm việc viết Python hầu hết đã chuyển sang phiên bản 3, vì vậy rất có thể bạn sẽ không nhận thấy sự thay đổi

Nếu quy trình công việc bạn sử dụng bị ảnh hưởng

Trước tiên, hãy kiểm tra xem có bản cập nhật nào không;

Một tùy chọn khác là kiểm tra một giải pháp thay thế;

Cuối cùng, bạn có thể cài đặt lại Python 2 bằng cách làm theo hướng dẫn

Cập nhật quy trình làm việc

Hãy nhớ rằng một số Quy trình công việc có thể cần điều chỉnh bổ sung. Nhiều quy trình công việc dựa trên Python đã được cập nhật và có thể được tìm thấy trên

Để được trợ giúp về bất kỳ quy trình công việc nào không có trong danh sách trên, hãy truy cập Diễn đàn Alfred nơi cộng đồng thân thiện của chúng tôi sẽ có thể trợ giúp

Python 2 không còn được hỗ trợ bởi Python Software Foundation. Đây là những gì bạn có thể làm nếu bị mắc kẹt với Python 2 trong thế giới đang nhanh chóng trở thành thế giới Python 3

Bởi Serdar Yegulalp

Nhà văn cao cấp, InfoWorld.

Hình ảnh Just_Human / Getty

Mục lục

Cho xem nhiều hơn

Kể từ ngày 1 tháng 1 năm 2020, 2. nhánh x của ngôn ngữ lập trình Python không còn được hỗ trợ bởi người tạo ra nó, Python Software Foundation. Ngày này đánh dấu đỉnh điểm của một bộ phim truyền hình đã kéo dài trong nhiều năm—sự chuyển đổi từ phiên bản Python cũ hơn, kém hiệu quả hơn, được sử dụng rộng rãi sang phiên bản mới hơn, mạnh mẽ hơn mà vẫn theo sau người tiền nhiệm của nó trong việc áp dụng

Đó là thời gian cao. Python 3, với vô số cải tiến về kỹ thuật và người dùng cuối so với Python 2, chưa bao giờ ở vị trí tốt hơn để thay thế vĩnh viễn Python 2. Phần lớn các gói phổ biến được lưu trữ trong kho lưu trữ PyPI, điểm dừng đầu tiên cho mã Python có thể tái sử dụng, hỗ trợ Python 3. Python 3 đã trở thành trình thông dịch Python mặc định cho nhiều bản phân phối Linux. Và hầu hết mọi cuốn sách, học viện mã hóa và hướng dẫn trực tuyến gần đây đều đề xuất Python 3 cho người mới bắt đầu

[ Cũng trên InfoWorld. 3 thiếu sót lớn của Python — và giải pháp của chúng]

Bây giờ là tin xấu. Python 2, như Windows 7 [hoặc Windows XP. ], sẽ ở bên chúng ta trong nhiều năm tới. Nhiều người trong chúng ta sẽ tiếp tục dựa vào các ứng dụng được viết bằng Python 2. Một số người trong chúng tôi thậm chí sẽ tiếp tục sử dụng Python 2 cho các ứng dụng mới do các hạn chế nội bộ. Bạn nên làm gì nếu mắc kẹt với Python 2 trong thế giới đang nhanh chóng trở thành thế giới Python 3? .  

Python 2 hết tuổi thọ. nó có nghĩa là gì

Điều đầu tiên và quan trọng nhất cần hiểu về Python 2 sẽ EOL [kết thúc vòng đời]. Các ứng dụng Python 2 sẽ vẫn chạy. Đừng coi đây là sự cố Lỗi Thiên niên kỷ, trong đó tất cả các ứng dụng Python 2 đều ngừng hoạt động một cách kỳ diệu vào ngày 1 tháng 1 năm 2020. Sẽ không còn bất kỳ hỗ trợ chính thức nào cho Python 2 từ nhóm phát triển Python cốt lõi

Đây là ý nghĩa của Python 2 EOL trong điều kiện thực tế

  • Các bản sửa lỗi và bản vá bảo mật chính thức cho Python 2 sẽ ngừng hoạt động. Không có sự cố mới nào được phát hiện trong trình thông dịch Python 2 hoặc thư viện chuẩn Python 2 sẽ được nhóm phát triển cốt lõi khắc phục. Tuy nhiên, các nhà cung cấp thương mại có thể tự duy trì Python 2 và các bên thứ ba khác có thể rẽ nhánh cơ sở mã Python 2 và tiếp tục nơi nhóm nòng cốt đã dừng lại. [Thêm về điều này sau. ]
  • Các dự án Python của bên thứ ba sẽ từ bỏ Python 2. Các thư viện đã hỗ trợ cả Python 2 và Python 3 sẽ bắt đầu dành riêng tài nguyên của họ cho Python 3. Nhiều dự án trong số này là do tình nguyện viên thực hiện và việc hỗ trợ chỉ một phiên bản ngôn ngữ sẽ ít tốn kém hơn nhiều. Mỗi dự án sẽ tự quyết định hỗ trợ Python 2, nhưng nhiều dự án Python lớn đang cam kết bỏ hoàn toàn hỗ trợ Python 2 vào năm 2020
  • Hỗ trợ nền tảng cho Python 2 sẽ suy yếu dần. Các bản phân phối Linux và nhà cung cấp dịch vụ đám mây có thể tiếp tục bao gồm thời gian chạy Python 2. Nhưng mong đợi hỗ trợ cho Python 2 trở nên kém mạnh mẽ hơn theo thời gian. Gần như chắc chắn vẫn có thể chạy phiên bản Python 2 được chứa trong bộ chứa trên nền tảng đám mây, nhưng không có gì đảm bảo rằng các nhà cung cấp dịch vụ đám mây sẽ tiếp tục duy trì bộ chứa Python 2 của riêng họ

Nếu bạn gặp khó khăn với các ứng dụng Python 2, bạn nên xử lý thế nào khi không có hỗ trợ Python 2? . Nhưng đó chỉ là lựa chọn đầu tiên trong nhiều lựa chọn.  

Chuyển đổi khỏi Python 2

Bỏ lại Python 2 để chuyển sang Python 3 có thể dễ dàng hơn bạn mong đợi, tùy thuộc vào quy mô của cơ sở mã và các thành phần phụ thuộc bên ngoài. Tài liệu chính thức của Python có một số bước đơn giản mà bạn có thể thực hiện để xác định xem dự án của mình có “phù hợp với tương lai” hay không—i. e. , có thể được sử dụng trong Python 3 với rất ít hoặc không cần điều chỉnh. Một trong những bước đầu tiên tốt nhất mà bạn có thể thực hiện là sử dụng gói caniusepython3 để tìm ra thành phần hoặc phần phụ thuộc nào, nếu có, sẽ chặn quá trình di chuyển

Nếu bạn bị mắc kẹt với Python 2 vì một thành phần cụ thể của ứng dụng chỉ hoạt động trên Python 2, hãy bắt đầu bằng cách chuyển đổi khỏi thành phần đó. Xem liệu có tồn tại giải pháp thay thế tương thích với Python 3 hay không, sau đó xây dựng lại ứng dụng từ điểm đó trở đi. Ý tưởng là tìm kiếm những nơi nhỏ nhất mà sự phụ thuộc của một người vào Python 2 nói dối và giải quyết chúng

Điều tối thiểu bạn có thể làm, nếu bạn phải duy trì Python 2 ở một dạng nào đó, là bắt đầu bằng cách chuyển sang phiên bản Python 2 mới nhất—Python 2. 7. 16 kể từ khi viết bài này—và sử dụng nó làm điểm xuất phát cho Python 3. Bằng cách đó, bạn sẽ được hưởng lợi từ các bản sửa lỗi sẽ có sẵn cho Python 2. 7 trước khi chính thức kết thúc cuộc đời

Sử dụng thời gian chạy Python 2 thay thế

Nếu việc thay đổi cơ sở mã Python 2 không phải là một đề xuất khả thi, thì một giải pháp thay thế khác là sử dụng thời gian chạy Python 2 khác do bên thứ ba phát triển. Thời gian chạy Python 2 thay thế có thể có cửa sổ hỗ trợ dài hơn chính Python 2

Tauthon

Tauthon là một nhánh của Python 2. 7. 18 “với cú pháp mới, tích hợp sẵn và thư viện được nhập từ Python 3. x,” theo README của dự án. Tauthon cũng bao gồm, bất cứ khi nào người bảo trì có thể cung cấp cho họ, các bản sửa lỗi và bản vá cho ngôn ngữ. Về lý thuyết, Tauthon sẽ hoạt động như một sự thay thế thả xuống cho Python 2. 7. Bản phát hành gần đây nhất khi viết bài này, Tauthon 2. 8. 2, bao gồm chú thích hàm, đối số chỉ từ khóa, cú pháp async/await và các tính năng khác trước đây chỉ có trong Python 3

PyPy

PyPy, thời gian chạy được tăng tốc đúng lúc cho Python, sử dụng Python 2 như một phần quan trọng trong cơ sở hạ tầng nội bộ của chính nó và từ lâu đã hỗ trợ Python 2 làm phiên bản chính của nó. Tài liệu cho dự án “vì RPython [nền tảng của PyPy] được xây dựng trên Python 2 và điều đó rất khó thay đổi, phiên bản Python 2 của PyPy sẽ tồn tại 'mãi mãi', tôi. e. miễn là bản thân PyPy ở xung quanh. ” PyPy có thể gây ra các vấn đề về tính tương thích hoặc hiệu suất với một số gói Python dựa trên phần mở rộng C, mặc dù nhóm phát triển của PyPy làm việc liên tục để giải quyết các vấn đề đó

Trăn sắt

IronPython, một triển khai Python cho. Net, có phiên bản Python 2 vẫn đang được hỗ trợ tích cực. Danh sách các nhà phát triển hiện tại của nó đã tuyên bố rằng họ không có khả năng hỗ trợ Python 2 vào năm 2020, tốt hơn hết là tập trung vào IronPython3. Tuy nhiên, điều đó không có nghĩa là người khác không thể tự mình tiếp tục hỗ trợ như vậy

Cython

Một khả năng khác, mặc dù cũng có khoảng thời gian hỗ trợ hạn chế, là Cython. Cython biên dịch Python sang C với kiểu gõ tùy chọn để cải thiện hiệu suất và đã hỗ trợ Python 2 kể từ khi thành lập. Có thể sử dụng Cython để chuyển đổi mã Python 2 thành C để tiếp tục sử dụng dưới dạng nhị phân "đóng băng". Bạn thậm chí có thể tăng hiệu suất bằng cách làm như vậy, tùy thuộc vào bản chất của ứng dụng. [Các chương trình chủ yếu bị ràng buộc I/O sẽ không thấy nhiều cải thiện. ]

Tuy nhiên, Cython có kế hoạch ngừng hỗ trợ Python 2 vào cuối năm nay. Điều này không có nghĩa là các chương trình Python 2 sẽ không biên dịch thành Cython nữa, chỉ là mã Cython sử dụng cú pháp Python 2 sẽ cần được biên dịch bằng Python 3.  

Mua hỗ trợ Python 2 mở rộng từ nhà cung cấp

Một giải pháp dài hạn là nhận hỗ trợ từ nhà cung cấp giải pháp Python. ActiveState, người tạo bản phân phối ActivePython và Komodo IDE, cung cấp hỗ trợ thương mại cho những khách hàng muốn tiếp tục sử dụng Python 2 hoặc muốn chuyển sang Python 3 bằng cách xác định các phần trong ngăn xếp Python của họ phải được viết lại trong Python 3

Một số nhà cung cấp cung cấp hỗ trợ cho Python 2 như một phần của sự hiện diện của nó trong một sản phẩm được hỗ trợ khác. Red Hat Enterprise Linux phiên bản 6 và 7 bao gồm Python 2, vì vậy mọi hợp đồng hỗ trợ mua từ Red Hat cho các phiên bản HĐH đó sẽ bao gồm hỗ trợ liên tục cho Python 2 trong suốt thời gian hỗ trợ của sản phẩm

Nếu bạn đang sử dụng Python 2 thông qua dịch vụ đám mây, thì có khả năng dịch vụ này sẽ tiếp tục hỗ trợ Python 2 theo cách riêng của nó. Chẳng hạn, AWS đã tuyên bố sẽ cung cấp các bản vá bảo mật cho Python 2 của mình. 7 cho đến ngày 31 tháng 12 năm 2020, mặc dù điều này không áp dụng cho bất kỳ Python 2 bên thứ ba nào. 7 gói

Lựa chọn thứ ba là mua hỗ trợ từ một công ty tư vấn hoặc nhà thầu. Mức độ hỗ trợ họ cung cấp cho bạn sẽ khác nhau tùy thuộc vào nhu cầu và tham vọng của bạn. Nó có thể bao gồm việc đưa ra một kế hoạch chuyển đổi để rời khỏi Python 2 và viết lại bất kỳ phần mềm phụ thuộc nào [có lẽ là chiến lược dài hạn tốt nhất] hoặc hợp nhất các bản vá cho Python 2 theo cách thủ công vào một bản dựng thời gian chạy tùy chỉnh [đầy tham vọng và phức tạp].

Tự duy trì Python 2

Python là một dự án mã nguồn mở. Không có gì ngăn cản bạn tự thực hiện bất kỳ bản sửa lỗi cần thiết nào. Nếu cách khắc phục là thay đổi đối với thư viện chuẩn của Python, thì điều đó thường không quá khó, vì hầu hết thư viện chuẩn của Python đều được viết bằng Python. Nhưng nếu bạn cần thay đổi mô-đun C được Python sử dụng trong thư viện chuẩn hoặc trình thông dịch CPython, điều đó sẽ khó khăn hơn. Bạn sẽ cần biết C và làm quen với nội bộ của CPython để thực hiện việc này

Không làm gì cả

Nếu nó không bị hỏng, đừng sửa nó. Đó là chiến lược mà nhiều doanh nghiệp đã sử dụng với Windows NT và Windows 2000 khi những hệ điều hành này hết hạn sử dụng. Về lý thuyết, các ứng dụng Python chỉ dành cho sử dụng nội bộ và không được tiếp xúc với Internet công cộng có thể chạy vô thời hạn

Máy ảo và container hóa cung cấp các cách để giữ cho các loại ứng dụng này tồn tại và hoạt động tốt trong môi trường được kiểm soát. Bạn có thể "đóng băng" một phiên bản nhất định của thời gian chạy Python 2 thành hình ảnh vùng chứa hoặc máy ảo, cùng với thư viện chuẩn của nó, các mô-đun cần thiết cho ứng dụng của bạn và chính ứng dụng đó

Điều đó nói rằng, bất kỳ ứng dụng cũ nào, kể cả ứng dụng không có tiếp xúc với bên ngoài, đều phải được đánh giá lại thường xuyên. Trong mọi trường hợp, chiến lược dài hạn tốt nhất cho người dùng Python 2 là chuyển sang Python 3. Python 2, dù tuyệt vời như thế nào, vẫn là thứ cần vượt qua

Đọc thêm về Python

  • Trăn là gì?
  • PyPy là gì?
  • Cython là gì?
  • hướng dẫn Cython. Cách tăng tốc Python
  • Cách cài đặt Python một cách thông minh
  • Các tính năng mới tốt nhất trong Python 3. 8
  • Quản lý dự án Python tốt hơn với Thơ
  • Virtualenv và venv. Giải thích môi trường ảo Python
  • Python virtualenv và venv nên và không nên làm
  • Giải thích luồng Python và các quy trình con
  • Cách sử dụng trình gỡ lỗi Python
  • Cách sử dụng timeit để cấu hình mã Python
  • Cách sử dụng cProfile để cấu hình mã Python
  • Bắt đầu với async trong Python
  • Cách sử dụng asyncio trong Python
  • Cách chuyển đổi Python sang JavaScript [và ngược lại]
  • Python 2 EOL. Làm thế nào để sống sót khi kết thúc Python 2
  • 12 Pythons cho mọi nhu cầu lập trình
  • 24 thư viện Python cho mọi nhà phát triển Python
  • 7 IDE Python thú vị mà bạn có thể đã bỏ lỡ
  • 3 thiếu sót lớn của Python — và giải pháp của chúng
  • 13 khung web Python được so sánh
  • 4 khung kiểm tra Python để loại bỏ lỗi của bạn
  • 6 tính năng Python mới tuyệt vời mà bạn không muốn bỏ lỡ
  • 5 bản phân phối Python để thành thạo máy học
  • 8 thư viện Python tuyệt vời để xử lý ngôn ngữ tự nhiên

Có liên quan

  • con trăn
  • Phát triển phần mềm

Serdar Yegulalp là một nhà văn cao cấp tại InfoWorld, tập trung vào học máy, container hóa, devops, hệ sinh thái Python và đánh giá định kỳ

Python 2 có còn được sử dụng không?

Mặc dù Python 2 gần như đã lỗi thời nhưng nó vẫn được một số chuyên gia phần mềm sử dụng cho đến ngày nay do một số tính năng đặc biệt của nó.

Là Python 2. 7 còn hàng không?

Ngày kết thúc vòng đời [EOL, ngày ngừng hoạt động] cho Python 2. 7 đã được chuyển sang tương lai 5 năm, đến năm 2020 . Quyết định này được đưa ra để làm rõ tình trạng của Python 2. 7 và giảm bớt lo lắng cho những người dùng chưa thể chuyển sang Python 3. Xem thêm PEP 466.

Apple đã xóa python2 chưa?

Do đó, vào tháng 6 năm 2019, Apple đã thông báo ngừng hỗ trợ Python 2. 7 và vào tháng 4 năm 2022, họ đã xóa hỗ trợ cho Python 2. 7 trên các thiết bị macOS chạy Monterey 12. 3 trở lên .

Chủ Đề