Hướng dẫn which python interpreter should i use? - tôi nên sử dụng trình thông dịch python nào?

Hướng dẫn which python interpreter should i use? - tôi nên sử dụng trình thông dịch python nào?

Trạng thái Python (3 & 2)

Khi chọn một thông dịch viên Python, một câu hỏi lờ mờ luôn có mặt: Tôi có nên chọn Python 2 hay Python 3 không? Câu trả lời tinh tế hơn một chút so với người ta có thể nghĩ.

Ý chính cơ bản của trạng thái của sự vật như sau:

  1. Hầu hết các ứng dụng sản xuất ngày nay sử dụng Python 3.
  2. Python 3 đã sẵn sàng để triển khai sản xuất các ứng dụng ngày hôm nay.
  3. Python 2 đã kết thúc cuộc đời vào ngày 1 tháng 1 năm 2020 [6].
  4. Tên thương hiệu là Py Python, gói gọn cả Python 3 và Python 2.

Khuyến nghị¶

Ghi chú

Việc sử dụng Python 3 rất được khuyến khích so với Python 2. Xem xét nâng cấp các ứng dụng và cơ sở hạ tầng của bạn nếu bạn thấy mình vẫn sử dụng Python 2 trong sản xuất ngày hôm nay. Nếu bạn đang sử dụng Python 3, xin chúc mừng - & nbsp; bạn thực sự là một người có hương vị tuyệt vời. CấmKenneth ReitzPython 3 is highly recommended over Python 2. Consider upgrading your applications and infrastructure if you find yourself still using Python 2 in production today. If you are using Python 3, congratulations — you are indeed a person of excellent taste. —Kenneth Reitz

Tôi sẽ bị cùn:

  • Sử dụng Python 3 cho các ứng dụng Python mới.
  • Nếu bạn học Python lần đầu tiên, việc làm quen với Python 2.7 sẽ rất hữu ích, nhưng không hữu ích hơn việc học Python 3.
  • Học cả hai. Cả hai đều là người Python.

Vì thế…. 3? ¶

Nếu bạn chọn một trình thông dịch Python để sử dụng, tôi khuyên bạn nên sử dụng Python 3.x mới nhất, vì mỗi phiên bản đều mang đến các mô -đun thư viện tiêu chuẩn mới và cải tiến, bảo mật và sửa lỗi.

Cho như vậy, chỉ sử dụng Python 2 nếu bạn có lý do mạnh mẽ, chẳng hạn như một cơ sở mã có sẵn, thư viện độc quyền Python 2, sự đơn giản/quen thuộc, hoặc, tất nhiên, bạn hoàn toàn yêu thích và được truyền cảm hứng từ Python 2. Không có hại trong đó.

Đọc thêm

Có thể viết mã hoạt động trên Python 2.6, 2.7 và Python 3. Điều này dao động từ tầm thường đến cứng tùy thuộc vào loại phần mềm bạn đang viết; Nếu bạn là người mới bắt đầu, có những điều quan trọng hơn nhiều để lo lắng.

Triển khai và

Khi mọi người nói về Python, chúng thường không chỉ có nghĩa là ngôn ngữ mà còn là việc thực hiện CPython. Python thực sự là một đặc điểm kỹ thuật cho một ngôn ngữ có thể được thực hiện theo nhiều cách khác nhau.

Cpython¶

CPYThon là triển khai tham chiếu của Python, được viết bằng C. Nó biên dịch mã Python thành mã byte trung gian, sau đó được giải thích bằng một máy ảo. CPYThon cung cấp mức độ tương thích cao nhất với các gói Python và các mô -đun mở rộng C.

Nếu bạn đang viết mã Python nguồn mở và muốn tiếp cận đối tượng rộng nhất có thể, việc nhắm mục tiêu Cpython là tốt nhất. Để sử dụng các gói dựa vào các tiện ích mở rộng C để chức năng, CPython là tùy chọn triển khai duy nhất của bạn.

Tất cả các phiên bản của ngôn ngữ Python được triển khai trong C vì CPython là triển khai tham chiếu.

Pypy¶

Pypy là một thông dịch viên Python được thực hiện trong một tập hợp con bị hạn chế của ngôn ngữ Python gọi là RPython. Trình thông dịch có trình biên dịch chỉ trong thời gian và hỗ trợ nhiều back-end (C, CLI, JVM).

PYPY nhằm mục đích tương thích tối đa với việc triển khai CPYThon tham chiếu trong khi cải thiện hiệu suất.

Nếu bạn đang tìm cách tăng hiệu suất của mã Python của mình, thì nó đáng để thử Pypy. Trên một bộ điểm chuẩn, nó hiện nhanh hơn 5 lần so với CPython.

Pypy hỗ trợ Python 2.7. PYPY3 [1], được phát hành trong beta, nhắm mục tiêu Python 3.

Jython¶

Jython là một triển khai Python biên dịch mã Python cho Java Bytecode sau đó được thực hiện bởi JVM (máy ảo Java). Ngoài ra, nó có thể nhập và sử dụng bất kỳ lớp Java nào như mô -đun Python.

Nếu bạn cần giao tiếp với một cơ sở mã Java hiện có hoặc có những lý do khác để cần viết mã Python cho JVM, Jython là lựa chọn tốt nhất.

Jython hiện đang hỗ trợ lên đến Python 2.7. [2]

Ironpython¶

Ironpython là một triển khai Python cho khung .NET. Nó có thể sử dụng cả thư viện Python và .NET Framework và cũng có thể hiển thị mã Python cho các ngôn ngữ khác trong khung .NET.

Các công cụ Python cho Visual Studio tích hợp IronPython trực tiếp vào môi trường phát triển Visual Studio, làm cho nó trở thành một lựa chọn lý tưởng cho các nhà phát triển Windows.

Ironpython hỗ trợ Python 2.7. [3] Ironpython 3 [4] đang được phát triển, nhưng chưa sẵn sàng để sử dụng vào tháng 9 năm 2020.

Python, một trong những ngôn ngữ lập trình phổ biến nhất, yêu cầu trình thông dịch thực hiện các hướng dẫn được xác định bởi mã Python. Trái ngược với các ngôn ngữ khác, biên dịch trực tiếp vào mã máy, nó tùy thuộc vào trình thông dịch để đọc mã Python và dịch các hướng dẫn của nó cho CPU thực hiện các hành động liên quan. Có một số phiên dịch viên ngoài kia, và trong bài viết này, tôi sẽ xem xét một vài trong số họ.

Mồi cho phiên dịch viên

Khi nói về phiên dịch viên Python, nó thường là nhị phân /usr/bin/python được đề cập. Điều đó cho phép bạn thực hiện một tệp .py. Tuy nhiên, phiên dịch chỉ là một nhiệm vụ. Trước khi một dòng mã Python thực sự được thực hiện trên CPU, bốn bước này đã có liên quan:
However, interpreting is just one task. Before a line of Python code is actually executed on the CPU, these four steps are involved:

  1. Lexing - Mã nguồn do con người tạo ra thành một chuỗi các thực thể logic, cái gọi là mã thông báo từ vựng. - The human-made source code is converted into a sequence of logical entities, the so called lexical tokens.
  2. Phân tích cú pháp - Trong trình phân tích cú pháp, các mã thông báo từ vựng được kiểm tra liên quan đến cú pháp và ngữ pháp. Đầu ra của trình phân tích cú pháp là một cây cú pháp trừu tượng (AST). - In the parser, the lexical tokens are checked in regards of syntax and grammar. The output of the parser is an abstract syntax tree (AST).
  3. Biên dịch - Dựa trên AST, trình biên dịch tạo mã byte Python. Mã byte bao gồm các hướng dẫn độc lập nền tảng rất cơ bản. - Based on the AST, the compiler creates Python bytecode. The bytecode consists of very basic, platform independent instructions.
  4. Giải thích - Trình thông dịch lấy mã byte và thực hiện các hoạt động được chỉ định. - The interpreter takes the bytecode and performs the specified operations.

Như bạn có thể thấy, rất nhiều bước được yêu cầu trước khi có bất kỳ hành động thực sự nào được thực hiện. Nó có ý nghĩa để xem xét kỹ hơn các phiên dịch viên khác nhau.

1. Cpython

CPYThon là triển khai tham chiếu của Python và mặc định trên nhiều hệ thống. Như tên cho thấy, CPython được viết bằng C. Do đó, có thể viết các tiện ích mở rộng trong C và do đó làm cho mã thư viện dựa trên C Widley có sẵn cho Python. CPython có sẵn trên một loạt các nền tảng bao gồm ARM, iOS và RISC. Tuy nhiên, khi thực hiện tham chiếu của ngôn ngữ, CPython được tối ưu hóa cẩn thận và không tập trung vào tốc độ.
As a result, it is possible to write extensions in C and therefore make the widley used C based library code available to Python. CPython is available on a wide range of platforms including ARM, iOS, and RISC. However, as the reference implementation of the language, CPython is carefully optimized and not focused on speed.

2. Pyston

Pyston là một ngã ba của trình thông dịch Cpython, trong đó thực hiện tối ưu hóa hiệu suất. Dự án mô tả chính nó như là một sự thay thế của trình thông dịch Cpython tiêu chuẩn cho các ứng dụng lớn, trong thế giới thực với tiềm năng tăng tốc lên tới 30%. Do thiếu các gói nhị phân tương thích, các gói Pyston phải được biên dịch lại trong quá trình tải xuống.

3. Pypy

PYPY là trình biên dịch chỉ trong thời gian (JIT) cho Python được viết bằng RPython, một tập hợp con được đánh máy tĩnh của Python. Trái ngược với trình thông dịch CPyThon, PYPY biên dịch thành mã máy có thể được thực thi trực tiếp bởi CPU. Pypy là sân chơi cho các nhà phát triển Python nơi họ có thể thử nghiệm các tính năng mới dễ dàng hơn.

PYPY nhanh hơn so với triển khai CPython tham chiếu. Do tính chất của trình biên dịch JIT, chỉ có các ứng dụng đã chạy trong một thời gian dài được hưởng lợi từ bộ nhớ đệm. & NBSP; Pypy có thể hoạt động như một sự thay thế cho CPython. Có một nhược điểm, mặc dù. Các mô-đun mở rộng C chủ yếu được hỗ trợ, nhưng chúng chạy chậm hơn so với một python. Các mô -đun mở rộng PYPY được viết bằng Python (không phải C) và do đó trình biên dịch JIT có thể tối ưu hóa chúng. Miễn là ứng dụng của bạn không phụ thuộc vào các mô -đun không tương thích, PYPY là một sự thay thế tuyệt vời cho CPython. Có một trang chuyên dụng trên trang web dự án mô tả sự khác biệt đối với CPython một cách chi tiết: sự khác biệt giữa Pypy và Cpython

4. Thuốc rỉ sét

Như tên đề xuất, Rustpython là một thông dịch viên Python được viết bằng gỉ. Mặc dù ngôn ngữ lập trình rỉ sét khá mới, nhưng nó đã trở nên phổ biến và là ứng cử viên để trở thành người kế thừa của C và C ++. Theo mặc định, RustPython hoạt động giống như trình thông dịch của CPython nhưng nó cũng có trình biên dịch JIT có thể được bật tùy chọn. Một tính năng hay khác là công cụ Rust cho phép bạn biên dịch trực tiếp với Webassugging và cũng cho phép bạn chạy trình thông dịch hoàn toàn trong trình duyệt. Một bản demo của nó có thể được tìm thấy tại Rustpython.github.com/demo.

5. Python không chồng

Python Stackless mô tả chính nó là một phiên bản nâng cao của ngôn ngữ lập trình Python. Dự án về cơ bản là một ngã ba của trình thông dịch Cpython, bổ sung các microthreads, kênh và trình lập lịch vào ngôn ngữ. Microthreads cho phép bạn cấu trúc mã của mình thành Tasklets cho phép bạn chạy mã của mình song song. Cách tiếp cận này có thể so sánh với việc sử dụng các luồng màu xanh lá cây của mô -đun Greenlet. Các kênh có thể được sử dụng để giao tiếp hai chiều giữa các tác phẩm. Một người dùng nổi tiếng của Python Stackless là MMORPG EVE trực tuyến.

6. Micro Python

Micropython là cách để đi nếu bạn nhắm mục tiêu các bộ điều khiển vi mô. Đó là một triển khai nạc chỉ cần 16kb RAM và 256kb không gian. Do môi trường nhúng mà nó được dự định, thư viện tiêu chuẩn của Micropython chỉ là một tập hợp con của STL mở rộng CPython. Để phát triển và thử nghiệm hoặc như một sự thay thế nhẹ, Micropython cũng chạy trên các máy X86 và X64 thông thường. Micropython có sẵn cho Linux, Windows, cũng như nhiều bộ vi điều khiển.

Màn biểu diễn

Theo thiết kế, Python là một ngôn ngữ chậm. Tùy thuộc vào nhiệm vụ, có sự khác biệt đáng kể về hiệu suất giữa các phiên dịch viên. Để có được một cái nhìn tổng quan về trình thông dịch là lựa chọn tốt nhất cho một nhiệm vụ nhất định, hãy tham khảo pybenchmark.org. Một giải pháp thay thế cho việc sử dụng trình thông dịch là biên dịch mã nhị phân Python trực tiếp vào mã máy. Nuitka, ví dụ, là một trong những dự án có thể biên dịch mã Python với mã C và từ C đến mã máy. Mã C sau đó được biên dịch cho mã máy bằng trình biên dịch C thông thường. Chủ đề của trình biên dịch Python khá toàn diện và đáng giá một bài viết riêng.

Bản tóm tắt

Python là một ngôn ngữ tuyệt vời để tạo mẫu nhanh chóng và tự động hóa các nhiệm vụ. Ngoài ra, nó rất dễ học và phù hợp cho người mới bắt đầu. Nếu bạn thường gắn bó với Cpython, có thể rất thú vị khi xem mã của bạn hoạt động như thế nào trên một thông dịch viên khác. Nếu bạn sử dụng Fedora, bạn có thể dễ dàng kiểm tra một vài phiên dịch viên khác vì người quản lý gói đã cung cấp đúng nhị phân. Kiểm tra fedora.developer.org để biết thêm thông tin.

Hướng dẫn which python interpreter should i use? - tôi nên sử dụng trình thông dịch python nào?
Công việc này được cấp phép theo giấy phép quốc tế Creative Commons Attribution-chia sẻ 4.0.

Người phiên dịch nào là tốt nhất cho Python?

Ides python hàng đầu..
Nhàn rỗi. Idle (môi trường phát triển và học tập tích hợp) là một trình soạn thảo mặc định đi kèm với Python. ....
Pycharm. Pycharm là một Python IDE được sử dụng rộng rãi được tạo ra bởi JetBrains. ....
Visual Studio Code. Visual Studio Code là một IDE nguồn mở (và miễn phí) được tạo bởi Microsoft. ....
Văn bản tuyệt vời 3. ....
Nguyên tử.....
Jupyter.....
Spyder.....
PyDev..

3 phiên dịch viên tiêu chuẩn trong Python là gì?

3 phiên dịch viên tiêu chuẩn trong Python là gì ?..
Cpython.Nó là mặc định và tối đa được sử dụng để thực hiện ngôn ngữ lập trình Python ..
Jython.Trước đây được gọi là Jpython, Jython là một cộng tác viên trong việc thực hiện điều dưỡng Python chạy trên nền tảng Java ..
PythonNet..
Python không chồng ..

Thông dịch viên Python tiêu chuẩn là gì?

Được viết bằng C và Python, CPython là triển khai mặc định và được sử dụng rộng rãi nhất của ngôn ngữ Python.CPYThon có thể được định nghĩa là cả trình thông dịch và trình biên dịch vì nó biên dịch mã python thành mã byte trước khi diễn giải nó.CPython is the default and most widely used implementation of the Python language. CPython can be defined as both an interpreter and a compiler as it compiles Python code into bytecode before interpreting it.

Tôi nên sử dụng thông dịch viên nào cho pycharm?

Để làm việc với mã Python của bạn trong Pycharm, bạn cần cấu hình ít nhất một trình thông dịch Python.Bạn có thể sử dụng trình thông dịch hệ thống có sẵn với cài đặt Python của bạn.Bạn cũng có thể tạo ra một môi trường ảo ảo, pipenv, thơ hoặc bao gồm.a system interpreter that is available with your Python installation. You can also create a Virtualenv, Pipenv, Poetry, or Conda virtual environment.