Vào những ngày đen tối và cổ xưa của năm 2003, PEP 304 xuất hiện để thách thức vấn đề này. Bản vá của nó đã được tìm thấy mong muốn. Các phụ thuộc nền tảng biến môi trường và các phiên bản nghiêng xé nó thành các mảnh vụn và để các bit của nó nằm rải rác trên các vùng đất hoang.
Sau nhiều năm đau khổ, một thách thức mới đã tăng trong những ngày cuối cùng của năm 2009. Barry Warsaw triệu tập PEP 3147 và gửi nó để chiến đấu, sử dụng một vũ khí đơn giản với kỹ năng. PEP đã nghiền nát các tập tin PYC lộn xộn, làm im lặng các thông dịch viên Unladen Swallow và CPython đang cố gắng tranh luận rằng tập tin PYC của nó nên chiến thắng, và cho phép Python dễ dàng nghỉ ngơi với những con ma chết của nó thỉnh thoảng chạy trong đêm khuya. PEP 3147 được nhà độc tài tìm thấy xứng đáng và được phong tước hiệp sĩ chính thức trong những ngày 3.2.
Kể từ 3.2, Python lưu trữ tệp PYC của mô-đun trong __pycache__
trong thư mục của mô-đun. Mỗi tệp PYC chứa tên và phiên bản của thông dịch viên, ví dụ: __pycache__/foo.cpython-33.pyc
. Bạn cũng có thể có một __pycache__/foo.cpython-32.pyc
được biên dịch bằng phiên bản Python cũ hơn. Ma thuật phù hợp xảy ra: ma thuật chính xác được sử dụng và biên dịch lại nếu không đồng bộ với mã nguồn. Khi chạy, hãy xem mô-đun mymodule.__cached__
của mô-đun đối với tên tệp pyc và phân tích cú pháp nó bằng imp.get_tag()
. Xem the What's New section để biết thêm thông tin.
TL; DR - Chỉ hoạt động trong Python 3.2 trở lên. Hacks nghèo thay thế cho các phiên bản trước đó.
Nguồn
2013-05-10 06:30:04
Bạn đã thử Python 3.2 như thế nào? Nó thực hiện PEP 3147: Thư mục Kho lưu trữ PYC (http://www.python.org/dev/peps/pep-3147/). –
Nếu bạn không quan tâm đến tệp .pyc, bạn có thể sử dụng 'os.system ('del * .pyc')' (cửa sổ, ví dụ) ở cuối tập lệnh. – Charlie