Ban đầu tôi có tất cả các mô-đun của mình trong một gói. Gần đây tôi đã tạo một gói phụ trong gói ban đầu và đã chuyển một vài mô-đun vào đó. Thư mục src của tôi và 2 thư mục gói, đều nằm trong PYTHONPATH của tôi.
Vì tôi đã định vị lại các mô-đun này, những thay đổi mà tôi đang thực hiện đối với các tệp .py của chúng dường như không tạo ra các tệp * $ py.class được tạo, mà tôi tin là cuối cùng trên những gì print __FILE__
phun ra.
Tệp .class nằm trong thư mục của gói cấp cao nhất, điều tôi tin là vì địa điểm đầu tiên được nhập từ bên trong mô-đun nằm trong gói đó. Vì vậy, tôi nghĩ rằng họ đang ở đúng nơi.
Di chuyển các mô-đun trở lại gói cấp cao nhất làm cho vấn đề biến mất, nhưng buộc phải có tất cả các mô-đun trong một gói không phải là giải pháp. Có điều gì tôi phải làm để 'đăng ký' một mô-đun như là một phần của một gói, ngoài việc có nó trong một thư mục với một số __init__.py
?
Lưu ý: Phần còn lại của câu hỏi này chỉ là các triệu chứng khiến tôi kết luận rằng các tệp .class không được cập nhật khi tôi thay đổi tệp .py. Bạn có thể bỏ qua nó nếu bạn là một tl; dr loại người: P
Tôi đặt một khoảng trắng ở đầu hàm và khi tôi duyệt qua, con trỏ sẽ theo sau mã được sử dụng được.
Đây là mã IDE cho tôi thấy:
và đây là những vars địa phương (lưu ý rằng self
đã không có gì ràng buộc):
Sau khi tôi bước một một vài dòng, đây là mã (lưu ý vị trí con trỏ): và các địa phương:
Chú ý rằng tại self
được ghé thăm id
và updatePeriod
ràng buộc, do đó, những 2 dòng đầu tiên của mã sau khi khoảng trắng đã rõ ràng được thực thi.
Nếu tôi loại bỏ tệp .py hoàn toàn (dính nó trên màn hình hoặc thứ gì đó), thì rõ ràng IDE không thể tìm thấy nó, vì vậy tôi không thể thực hiện được, nhưng chương trình chạy dựa trên mã được sử dụng được (có một số thay đổi rõ ràng mà tôi có thể nói là không có hiệu lực).
Cuối cùng, ngày sửa đổi trên file py.class * $ liên quan là khoảng 4,5 giờ cũ, mặc dù tất cả không quan trọng này, tôi đã làm với các file py gần đây trong giờ cuối cùng hoặc 2.
Hmm. Tôi đã thử loại bỏ các tập tin lớp học có liên quan trước đó, nhưng tôi chỉ có lỗi về việc không thể tìm thấy mọi thứ. Tôi chỉ cố gắng loại bỏ * tất cả * của các tập tin lớp, và điều đó dường như sửa chữa nó. Cảm ơn! –