Tôi đang phát triển một gói Python bằng cách sử dụng trình soạn thảo văn bản và IPython. Mỗi lần tôi thay đổi bất kỳ mã mô-đun nào, tôi phải khởi động lại trình thông dịch để kiểm tra điều này. Đây là một nỗi đau vì các lớp học mà tôi đang phát triển dựa vào bối cảnh cần phải được thiết lập lại trên mỗi lần tải lại.Làm thế nào để phát triển một mô-đun/gói Python mà không phải khởi động lại trình thông dịch sau mỗi lần thay đổi?
Tôi biết chức năng reload()
, nhưng điều này có vẻ là frowned upon (cũng vì nó đã bị xuống hạng từ Python 3.0 tích hợp) và hơn thế nữa nó hiếm khi hoạt động vì các mô-đun hầu như luôn có nhiều tham chiếu.
Câu hỏi của tôi là - cách tốt nhất/được chấp nhận để phát triển một mô-đun/gói Python để tôi không phải trải qua nỗi đau khi liên tục thiết lập lại ngữ cảnh thông dịch của mình là gì?
Một ý tưởng tôi đã nghĩ là sử dụng thủ thuật if __name__ == '__main__':
để chạy mô-đun trực tiếp để mã không được nhập. Tuy nhiên điều này để lại một loạt các cruft theo ngữ cảnh (cụ thể để thiết lập của tôi) ở dưới cùng của các tập tin mô-đun của tôi.
Ý tưởng?
Sử dụng% chạy để tải mô-đun froma thật tuyệt vời, cảm ơn! – Brendan
Âm thanh 'dreload()' cũng tốt nhưng có vẻ như đã gặp vấn đề với Numpy - nó cũng có vẻ bỏ qua bất cứ điều gì tôi đặt trong danh sách từ khóa 'exclude' ... – Brendan
Vấn đề với Numpy và' dreload() 'là tài liệu ở đây https://bugs.launchpad.net/ipython/+bug/306805 – Brendan