2010-05-23 29 views
10

Tôi muốn biết tệp pyc (python bytecode) là gì. Tôi muốn biết tất cả các chi tiết. Tôi muốn biết về cách thức các tệp pyc giao diện với trình biên dịch. Nó là một sự thay thế cho exe? Liệu nó có cần chạy bởi python không? Ứng dụng này có thể di động như tệp .py không? Tôi nên sử dụng thông tin này ở đâu?Nơi để sử dụng một tệp pyc

Trả lời

15

Để bổ sung câu trả lời của Mike Graham, có một số nhận xét thú vị here cung cấp một số thông tin về tệp pyc. Thú vị nhất tôi nghi ngờ đối với bạn là dòng:

Một chương trình không chạy nhanh hơn khi được đọc từ tệp '.pyc' hoặc '.pyo' hơn khi được đọc từ '.py ' tập tin; điều duy nhất nhanh hơn về các tệp ‘.pyc’ ​​hoặc ‘.pyo’ là tốc độ tải chúng.

Cái nào chạm vào móng trên đầu w.r.t. mấu chốt của một tập tin pyc. A pyc là một tệp đã được giải thích trước py. Mã bytecode python vẫn giống như được tạo từ tệp py - sự khác biệt là khi sử dụng tệp pyc bạn không phải trải qua quá trình tạo đầu ra pyc (mà bạn thực hiện khi chạy tệp py). Đọc vì bạn không phải chuyển đổi tập lệnh python sang mã byte bytecode.

Nếu bạn đã gặp các tệp .class trong java đây là một khái niệm tương tự - sự khác biệt là trong java bạn phải thực hiện việc biên dịch bằng cách sử dụng javac trước khi trình thông dịch java thực thi ứng dụng. Cách khác nhau để làm việc (nội bộ sẽ rất khác nhau vì chúng là các ngôn ngữ khác nhau) nhưng cùng một ý tưởng rộng.

9

Python bytecode yêu cầu Python chạy, không thể chạy độc lập mà không có Python và cụ thể cho bản phát hành Python cụ thể x.y. Nó phải di động trên nền tảng cho cùng một phiên bản. Không có lý do phổ biến để bạn sử dụng nó; Python sử dụng nó để tối ưu hóa việc phân tích cú pháp tệp .py của bạn trên các lần nhập lặp lại. Cuộc sống của bạn sẽ được bỏ qua sự tồn tại của các tập tin pyc.

6

Từ docs:

Là một quan trọng tăng tốc thời gian khởi động cho các chương trình ngắn có sử dụng rất nhiều các module chuẩn, nếu một tập tin gọi spam.pyc tồn tại trong thư mục thư rác .py được tìm thấy, điều này được giả định là chứa một phiên bản đã được "biên dịch byte" của spam mô-đun. Thời gian sửa đổi của phiên bản spam.py được sử dụng để tạo spam.pyc được ghi lại trong spam.pyc và tệp .pyc bị bỏ qua nếu chúng không khớp.

Xem phần ref để biết thêm thông tin. Nhưng một số câu trả lời cụ thể:

Nội dung của tệp spam.pyc là nền tảng độc lập, do đó thư mục mô-đun Python có thể được chia sẻ bởi các máy của các kiến ​​trúc khác nhau.

Đó là không thực thi; nó được sử dụng trong nội bộ bởi trình biên dịch như là một bước trung gian.

Nói chung, bạn không tạo tệp .pyc bằng tay: trình thông dịch tự động tạo chúng.

Các vấn đề liên quan