Python biên dịch các tệp .py và lưu nó dưới dạng các tệp .pyc để nó có thể tham chiếu chúng trong các lần gọi tiếp theo. .Pyc chứa mã byte được biên dịch của các tệp nguồn Python, đây là những gì trình thông dịch Python biên dịch nguồn thành. Mã này sau đó được thực thi bởi máy ảo của Python. Không có hại trong việc xóa chúng (.pyc), nhưng chúng sẽ tiết kiệm thời gian biên dịch nếu bạn đang xử lý nhiều.
Python là một ngôn ngữ được giải thích, trái ngược với ngôn ngữ được biên dịch, mặc dù sự khác biệt có thể bị mờ vì sự hiện diện của trình biên dịch mã byte. Biên dịch thường có nghĩa là chuyển đổi sang mã máy là thứ chạy nhanh nhất. Nhưng thông dịch viên lấy văn bản có thể đọc được của con người và thực hiện nó. Họ có thể làm điều này với một giai đoạn trung gian.
Ví dụ: Khi bạn chạy tệp nguồn myprog.py, trình thông dịch python trước tiên sẽ xem có myprog.pyc
tồn tại không (đó là phiên bản được biên dịch mã byte myprog.py
) và nếu nó là gần đây hoặc gần đây hơn myprog.py
. Nếu vậy, thông dịch viên chạy nó. Nếu nó không tồn tại hoặc myprog.py
gần đây hơn nó (có nghĩa là bạn đã thay đổi tệp nguồn), trước tiên trình thông dịch myprog.py
sẽ biên dịch thành myprog.pyc
.
Có một ngoại lệ cho ví dụ trên. Nếu bạn đặt #! /usr/bin/env python
dòng đầu tiên myprog.py
, làm cho nó có thể thực thi được, và sau đó tự chạy myprog.py
.