Hướng dẫn which version of python should i use for 2022? - tôi nên sử dụng phiên bản python nào cho năm 2022?

Đối với một dự án mới, bạn nên hỗ trợ phát hành ổn định mới nhất của tất cả các nền tảng bạn quan tâm. Đối với tôi, đó chỉ là Linux: Ubuntu LTS (20.04 có Python 3.8), Debian (Bullseye có Python 3.9) và Red Hat (8 có Python 3.9) - do đó giả sử Python 3,8 cho các dự án mới. Vì chỉ có 1 nền tảng ổn định giữ chúng tôi lại, chúng tôi có thể nhắm mục tiêu 3.9 nếu dự án vẫn cảm thấy "mới" vào tháng 4 năm 2022.

Thật hợp lý khi hy vọng rằng những người điều chỉnh đầu tiên của dự án của bạn sẽ ít nhất là ổn định cho một trong những bản phân phối này. Vào thời điểm dự án của bạn trở nên đủ ổn định để sử dụng chung, thật hợp lý khi hy vọng rằng mọi người đã nâng cấp lên một trong số này.


Đối với một dự án hiện tại, bạn không nên mong đợi mọi người sẽ nâng cấp lên phân phối ổn định mới nhất ngay lập tức, vì vậy nền tảng cần thiết của bạn sẽ bị tụt lại phía sau. Bao nhiêu tháng phía sau phụ thuộc vào mức độ hợp lý của bạn để hỗ trợ các phiên bản cũ của phần mềm của riêng bạn.

Hiện tại, đối với các dự án mà tôi chỉ hỗ trợ phiên bản mới nhất, tôi đang nhắm mục tiêu Python 3.7 vì Debian chỉ phát hành vài tháng trước. Red Hat phát hành nhiều năm trước vì vậy tôi không quan tâm đến bản phát hành trước đó.


Trong dịp hiếm hoi, tôi quan tâm đến Mac OS, tôi không quan tâm phiên bản nào được vận chuyển với chính HĐH, vì nó có lịch sử mạnh mẽ là không đáng tin cậy. Thay vào đó, tôi hy vọng mọi người sẽ cài đặt tất cả các phụ thuộc của họ với một trong những người quản lý gói của bên thứ ba (Homebrew và MacPorts đều có Python 3.10; Fink đã lỗi thời và chỉ có 3,8, nhưng tôi thực sự chưa bao giờ nghe thấy ai sử dụng Fink).

Đối với Windows, tôi đã từng nhắm mục tiêu Cygwin, nhưng ngày nay WSL đã vượt qua phần lớn nó.

Ngày 31 tháng 1 năm 2022

  • Thiết lập tốt nhất, một cách ngắn gọn
  • Tại sao sử dụng cả Python và Pyenv Python?
  • Pipx
  • PDM
  • Hãy cẩn thận
  • Bản tóm tắt

Trong vài năm qua, Python đã đạt được rất nhiều cải tiến tuyệt vời trong hệ sinh thái phát triển/đóng gói, nhưng điều này cũng tạo ra một mớ hỗn độn mà ngay cả những nhà phát triển có kinh nghiệm nhất cũng có một công cụ chọn thời gian khó khăn. May mắn thay, tôi đã tìm thấy viên đạn bạc phù hợp với tôi và tôi hy vọng nó cũng sẽ phù hợp với bạn.By "Development Setup", I mean the local development environment, and not about deploying apps on a server.

Thiết lập tốt nhất, một cách ngắn gọn

  • Tại sao sử dụng cả Python và Pyenv Python?system Python + pipx
  • BlogPost này mô tả thiết lập phát triển Python có ý nghĩa nhất đối với tôi (và có lẽ bạn cũng vậy) vào năm 2022 và hơn thế nữa. Bằng cách "thiết lập phát triển", ý tôi là môi trường phát triển cục bộ và không phải là triển khai các ứng dụng trên máy chủ.pyenv
  • Đối với các công cụ thực thi/tiện ích (ví dụ: mypy, đen), cài đặt với hệ thống python + pipxPDM (PDM is managed by pipx)

Để phát triển dự án, hãy cài đặt các phiên bản Python khác nhau thông qua PyenV

Tại sao sử dụng cả Python và Pyenv Python?

Một điều bất thường mà bạn có thể nhận thấy là thiết lập bao gồm hai cách để cài đặt Python: hệ thống Python và Python được cài đặt bởi PyenV. Ở đây, bằng "hệ thống Python", ý tôi là Python mang theo hệ thống của bạn hoặc python được cài đặt với trình quản lý gói hệ thống (ví dụ: apt, brew). Nhiều bài viết cho rằng chúng ta không bao giờ nên sử dụng hệ thống Python, vậy tại sao vẫn sử dụng nó? Bởi vì chúng ta cần hai hệ thống độc lập cho hai mục đích khác nhau:two independent systems for two different purposes:

  • Đối với các công cụ tiện ích, độ tin cậy quan trọng nhất. Bạn muốn chúng luôn luôn làm việc khi bạn cần chúng. Càng ít những thứ họ phụ thuộc vào, càng tốt. Hệ thống Python là lựa chọn tốt nhất, bởi vì chúng có ít phụ thuộc nhất. Ngoài ra, đối với các công cụ tiện ích, nó không thực sự quan trọng mà Python đang chạy. Do đó, ngay cả khi hệ thống Python đứng sau phiên bản mới nhất, nó thường ổn.reliability matters the most. You want them to always work when you need them. The less things they depend on, the better. System Python is the best choice, because they have the least dependencies. Also, for utility tools, It doesn't really matter which Python it is running on. Therefore even if system Python is behind the latest version, it is usually fine.
  • Đối với các phiên dịch viên Python được sử dụng bởi các dự án, tính linh hoạt là quan trọng hơn. Bạn có thể cần nâng cấp chúng khi phiên bản vá lỗi đã sửa lỗi hoặc sử dụng phiên bản Python cụ thể vì đó là những gì bạn có trên máy chủ. Pyenv phù hợp với mục đích này tốt.flexibility is more important. You may need to upgrade them when a patch version fixed a bug, or using a specific Python version because that's what you have on the server. pyenv fits this purpose well.

Pipx

PIPX không cần giới thiệu, nó đã trở thành cách thực tế để cài đặt các tệp thực thi Python. Nhưng hãy tưởng tượng nếu bạn cài đặt PIPX với Python được cài đặt Pyenv. Điều này tạo ra một sự phụ thuộc như thế này:

mypy --> pipx --> 3.9.7 (pyenv) --> pyenv --> system Python

Như bạn có thể thấy, phần 3.9.7 (pyenv) --> pyenv là không cần thiết. Nó cũng tạo ra rắc rối khi nâng cấp Python: bạn phải cài đặt lại PIPX hoặc giữ Python 3.9.7 mãi mãi kể từ khi PIPX và tất cả các công cụ trên đều dựa vào nó.

PDM

Bây giờ đến phần gây tranh cãi: PDM. Tuyên bố miễn trừ trách nhiệm: PDM là lựa chọn cá nhân của tôi và hoàn toàn ổn nếu bạn chọn thơ, pipenv hoặc bất kỳ công cụ nào khác. Dưới đây là lý do tại sao tôi sử dụng PDM:PDM. Disclaimer: PDM is my personal choice, and it's totally ok if you chose Poetry, Pipenv, or any other tools. Here are the reasons why I use PDM:

  • PDM đã giúp tôi tránh xa môi trường ảo mà tôi đã sử dụng để có hơn 10 môi trường ảo và tôi bị đau đầu mỗi khi nhìn thấy danh sách dài. Về cơ bản, nó không thể nâng cấp dự án Python của tôi, bởi vì tôi thực sự không muốn thiết lập môi trường ảo một lần nữa cho mọi dự án.
    I used to have 10+ virtual environments, and I get a headache every time I saw the long list. It essentially makes it impossible to ever upgrade my project Python, because I really don't want to setup virtual environments again for every project.

    Với PDM, tôi không có môi trường ảo. Mỗi dự án trực tiếp phụ thuộc vào Python được cài đặt PyenV. Tôi cũng tự do nâng cấp các phiên bản bản vá (ví dụ: từ 3.9.7 lên 3.9.9), cho phép tôi luôn sử dụng bản phát hành Python mới nhất.

    Xem thêm bạn không thực sự cần một ảo.

  • PDM được duy trì tốt PDM được tạo và duy trì bởi thành viên PYPA Frost Ming. Nếu bạn không biết các thành viên PYPA làm gì, hãy nói rằng họ biết tốt nhất về bao bì Python. Frost Ming cũng duy trì pipenv.
    PDM is created and maintained by PyPA member Frost Ming. If you don't know what PyPA members do, let's just say they know the best about Python packaging. Frost Ming also maintains Pipenv.

    Tôi đã từng sử dụng thơ, cũng là một công cụ tốt. Nhưng đôi khi thơ là lỗi, đặc biệt là khi nâng cấp dự án Python. Điều tồi tệ hơn là dường như không ai phải đối phó với những lỗi đó (ví dụ). PDM là ngược lại. Các vấn đề thường được trả lời trong vòng một hoặc hai ngày, bao gồm các yêu cầu tính năng.

    Lợi ích từ việc được duy trì bởi một thành viên PYPA, PDM thường là người nhanh nhất trong việc áp dụng các đề xuất mới trong thế giới bao bì Python, cho phép người dùng của họ duy trì năng suất cao.

Nhìn chung, tôi thấy PDM tốt hơn các công cụ khác mà tôi đã sử dụng và nó liên tục trở nên tốt hơn (5 ~ 6 bản phát hành mỗi tháng). Tôi đã tweet về quá trình chuyển đổi của mình từ thơ sang PDM, có thể rất thú vị khi đọc.

Hãy cẩn thận

Bạn vẫn có thể cần phải cài đặt một Python hệ thống mới khi phiên bản cũ bị phản đối. Bạn có thể sử dụng pipx reinstall-all để cài đặt lại các công cụ hiện có, điều này không quá tệ.

Thiết lập có thể hoặc không hoạt động trên Windows. Nếu bạn có thể xác nhận đó là trường hợp nào và/hoặc nếu có bất kỳ vấn đề nào, hãy cho tôi biết, tôi rất vui khi đưa chúng vào bài viết.

Bản tóm tắt

Trong vài năm qua, Python đã đạt được rất nhiều cải tiến tuyệt vời trong hệ sinh thái phát triển/đóng gói, nhưng điều này cũng tạo ra một mớ hỗn độn mà ngay cả những nhà phát triển có kinh nghiệm nhất cũng có một công cụ chọn thời gian khó khăn. May mắn thay, tôi đã tìm thấy viên đạn bạc phù hợp với tôi và tôi hy vọng nó cũng sẽ phù hợp với bạn.

Nhận xét được cung cấp bởi

Tôi nên sử dụng phiên bản Python nào?

Vì các phiên bản mới hơn của Python thường nhanh hơn, có nhiều tính năng hơn và được hỗ trợ tốt hơn, nên phiên bản mới nhất của Python 3 được khuyến nghị.Bạn không mất bất cứ thứ gì trong Django bằng cách sử dụng một bản phát hành cũ hơn, nhưng bạn không tận dụng các cải tiến và tối ưu hóa trong các bản phát hành Python mới hơn.the latest version of Python 3 is recommended. You don't lose anything in Django by using an older release, but you don't take advantage of the improvements and optimizations in newer Python releases.

Phiên bản nào ổn định nhất của Python 3 2022?

Ngày phát hành Python 3.11 Bản phát hành cuối cùng, ổn định sẽ ra mắt vào ngày 3 tháng 10 năm 2022, sau ba phiên bản beta nữa và hai phiên bản ứng cử viên trong thời gian này. Release Date The final, stable release will come out on October 3, 2022, after three more beta versions and two candidate versions in the meantime.

Python 3.10 sẽ nhanh hơn?

Chúng tôi sẽ tìm hiểu trong bài viết này.Quỹ phần mềm Python (PSF) duy trì Python, phát triển ngôn ngữ và luôn làm việc trên những cách mới để cải thiện nó.Trung bình, Python 3.11 nhanh hơn 14% so với Python 3.10.Phiên bản mới chậm hơn một chút trên một số điểm chuẩn, nhưng trên các điểm khác, nó nhanh hơn tới 64%.On average, Python 3.11 is 14% faster than Python 3.10. The new version is marginally slower on some benchmarks, but on the others, it's up to 64% faster.