Tôi đang viết một applet python để thu thập dữ liệu từ các công cụ khoa học và tôi đang cố gắng tìm ra cách tốt nhất để quản lý các trình điều khiển thiết bị của mình.Việc tải các mô-đun bị trì hoãn trong python
Mỗi trình điều khiển được đại diện bởi một mô-đun python riêng biệt trong gói đó là chương trình của tôi. Họ từng thực hiện một số giao diện tiêu chuẩn, nhưng chủ yếu nó là một danh sách khổng lồ của các lệnh (và ánh xạ chức năng) được cụ thể cho từng thiết bị và xe buýt tham gia. Về lâu dài, (tôi đang viết điều này cho nhóm phòng thí nghiệm của mình và đang lên kế hoạch hỗ trợ vài chục thiết bị) Tôi muốn tránh tải tất cả chúng cùng một lúc. Thay vào đó, tại thời gian chạy, tôi muốn đọc trong một danh sách các mô-đun vào một từ điển/danh sách và sau đó tải chúng chỉ khi chúng thực sự cần thiết.
Khi người dùng muốn sử dụng thiết bị mới, anh chọn trình điều khiển để sử dụng và chuyển tên cùng với hệ thống phụ trình điều khiển để kiểm tra xem trình điều khiển đó có nằm trong danh sách các mô-đun đã tải hay không , nó gọi hàm __import__
và nạp trình điều khiển sau đó khởi tạo một đối tượng thiết bị bằng trình điều khiển và đưa nó trở lại người dùng để sử dụng.
Câu hỏi của tôi là: Cách tốt nhất để có danh sách tất cả các mô-đun theo cách tương đối là gì? Những gì tôi có nghĩa là, nếu tôi biết rằng các trình điều khiển được đặt tại ..drivers
là có một cách để có được một danh sách các mô-đun gọn gàng trong subpacakage? Để minh họa: thông thường tôi chỉ gọi from ..drivers import driver_name
để nhập mô-đun, nhưng vì tôi không được bảo đảm là trong thư mục gói, không thể chỉ chúng tôi os
để có danh sách tên mô-đun.
Trong mọi trường hợp, bất kỳ ý tưởng nào (thậm chí có thể là cách tốt hơn để hoàn thành những gì tôi muốn - trình điều khiển "có thể nạp") sẽ được đánh giá cao.
Làm cách nào để tôi có trình điều khiển tự đăng ký? Thực hiện chúng với các kịch bản nhỏ để tìm phần mềm của tôi và tự đăng ký? hoặc một cái gì đó thông minh hơn? – crasic
Cảm ơn vì đề xuất tuyệt vời, tôi triển khai một tệp văn bản đơn giản để giữ tên trình điều khiển và siêu dữ liệu, có thể không phải là giải pháp dài hạn tốt nhất (khi mọi người có thể muốn nhập trình điều khiển bên ngoài), nhưng chắc chắn hoạt động như một sự quyến rũ trong thời gian này. – crasic