Tôi có một thư mục tin nhắn (gói) với tập tin __init__.py
và một mô-đun khác messages_en.py
bên trong nó. Trong __init__.py
nếu tôi nhập messages_en
nó hoạt động, nhưng __import__
không thành công với "ImportError: Không có mô-đun tên messages_en"Làm cách nào để nhập gói bằng __import __() khi tên gói chỉ được biết khi chạy?
import messages_en # it works
messages = __import__('messages_en') # it doesn't ?
Tôi đã từng nghĩ 'nhập khẩu x' chỉ là một cách khác để nói __import__('x')
+1 và nhờ giải thích, nhưng bạn có thể mô tả chính xác lý do tại sao Ví dụ của OP không hoạt động? Anh ta dường như đang cố gắng để bí danh messages_en tin nhắn, mà có vẻ (ngây thơ với tôi) là hợp lý. –
Như 'wr' giải thích là do cấp độ, và tôi biết __import__ không nên thường được sử dụng nhưng trong trường hợp này tôi phải tự động đọc ngôn ngữ từ tệp cấu hình gắn thêm vào thư và nhập tệp đó –
Ví dụ này rất hữu ích, đặc biệt là nếu bạn đang cố gắng tải các mô-đun từ các thư mục con. Nó đã giúp tôi sửa lỗi "Không tìm thấy thuộc tính" của tôi. – Carlos