Khi bạn chạy một chương trình Python, bạn có thể thấy một thư mục lạ xuất hiện trong project của mình có tên __pycache__. Nếu bạn đã từng tự hỏi “Thư mục này là gì?”, “Tại sao nó được tạo ra?”, và “Có thể xóa nó không?”, thì bài viết này Tuân sẽ giúp bạn giải đáp tất cả những thắc mắc đó.
__pycache__ là gì?
🔹 Thư mục __pycache__ trong Python là nơi lưu trữ các file bytecode đã được biên dịch của chương trình Python. Khi bạn chạy một file .py, Python sẽ tạo một file bytecode với đuôi file là .pyc.
Các file bytecode này sẽ đươc chạy trong máy ảo Python (Python Virtual Machine - PVM ) và tạo ra kết quả cuối cùng.
__pycache__ sẽ được tạo lại khi nào?
🔹 Các file bytecode (.pyc) trong thư mục __pycache__ chỉ được tạo lại khi source code của dự án thay đổi (nội dung code trong các file .py thay đổi).
Vì vậy, nếu nội dung trong các file .py không thay đổi, thì những lần chạy sau (lần thứ 2 trở đi) sẽ được thực thi nhanh hơn, vì không cần phải build lại các file bytecode mà PVM chỉ cần chạy các file đã được tạo trước đó.
Có xoá được không ?
🔹 Như Tuân đã giải thích ở trên, thì chúng ta có thể xoá nó đi nhé!. Vì mỗi lần chạy một chương trình, Python sẽ kiểm tra đã có file bytecode chưa? file bytecode là mới hay cũ? từ đó xác định có nên build lại không.
Có nên push lên cùng với source code không?
🔹 Một lỗi phổ biến mà các bạn sinh viên khi mới tham gia vào dự án mắc phải, đó là “push luôn __pycache__ lên git cùng với source code”. Thật sự thì nó không ảnh hưởng gì đến project cả, nhưng lúc review commit sẽ rất rối.
👉 Vậy nên lời khuyên của mình là nên để nó trong gitignore các bạn nhé, không nên push lên làm gì cả.
Phần kết
💡 Tóm lại cả __pycache__ là thư mục mà Python sử dụng để lưu trữ các file bytecode, phục vụ cho tác vụ tiếp theo trong quá trình thực thi của Python.
🔗 Tài liệu tham khảo
- https://www.youtube.com/watch?v=H8NPpVNSYls&ab_channel=upGrad
- https://realpython.com/python-pycache/
- https://www.geeksforgeeks.org/python-virtual-machine/
☕ Buy Me a Coffee
