Khi cố gắng chạy runserver
hoặc shell
sử dụng manage.py
Tôi nhận được ngoại lệ ImportError
. Tôi đang sử dụng Django 1.9.Django 1.9 ImportError cho import_module
ImportError: No module named 'django.utils.importlib'
Khi cố gắng chạy runserver
hoặc shell
sử dụng manage.py
Tôi nhận được ngoại lệ ImportError
. Tôi đang sử dụng Django 1.9.Django 1.9 ImportError cho import_module
ImportError: No module named 'django.utils.importlib'
django.utils.importlib
là một thư viện tương thích cho khi Python 2.6 vẫn được hỗ trợ. Nó đã lỗi thời kể từ khi Django 1.7, đã giảm hỗ trợ cho Python 2.6 và bị loại bỏ trong 1.9 cho mỗi chu kỳ không dùng nữa.
Sử dụng Python của import_module
chức năng thay vì:
from importlib import import_module
Lý do bạn có thể nhập nó từ django.utils.module_loading
là importlib.import_module
được nhập khẩu trong mô-đun đó, nó là không vì module_loading
trong bất kỳ cách nào xác định chức năng thực tế.
Vì django.utils.module_loading.import_module
không phải là một phần của API công khai, nó có thể bị xóa bất kỳ lúc nào nếu nó không còn được sử dụng nữa - ngay cả khi nâng cấp phiên bản nhỏ.
Cảm ơn bạn, tôi chưa bao giờ nhận ra 'importlib' là một mô-đun dựng sẵn! một bài học hay mà tôi nên đào sâu hơn vào lần sau. – Matt
tôi giải quyết này như sau:
try:
# Django versions >= 1.9
from django.utils.module_loading import import_module
except ImportError:
# Django versions < 1.9
from django.utils.importlib import import_module
Lưu ý rằng Django 1.9 chỉ mới đạt trạng thái alpha và không phù hợp để sử dụng sản xuất. Sử dụng 1,8 trừ khi bạn có một lý do rất tốt. –
Cảm ơn Daniel. Tôi chỉ chạy nó trong phát triển địa phương tại thời điểm này, nó là nhiều hơn một phương tiện để giúp đội Django theo dõi các vấn đề mà sẽ giữ lại một bản phát hành ổn định. – Matt
Django 1.9 hiện đã hết. – tutuca