ImportError: Không có mô-đun có tên 'django.core.urlresolvers'


166

Tôi đang làm việc trong dự án Django, nơi tôi cần tạo một biểu mẫu cho đầu vào. Tôi đã cố gắng nhập reversetừ django.core.urlresolvers. Tôi đã gặp một lỗi:

line 2, in from django.core.urlresolvers import reverse ImportError: No module named 'django.core.urlresolvers'

Tôi đang sử dụng Python 3.5.2, Django 2.0 và MySQL.


1
có vẻ như django không được cài đặt trên PATH của bạn.
Håken Nắp

Câu trả lời:


346

Django 2.0 loại bỏ django.core.urlresolversmô-đun, được chuyển sang django.urlsphiên bản 1.10. Thay vào đó, bạn nên thay đổi mọi thao tác nhập để sử dụng django.urls , như thế này:

from django.urls import reverse

Lưu ý rằng Django 2.0 loại bỏ một số tính năng trước đây django.core.urlresolvers, vì vậy bạn có thể phải thực hiện thêm một số thay đổi trước khi mã của bạn hoạt động. Xem các tính năng không dùng trong 1.9 để biết chi tiết về những thay đổi bổ sung đó.


1
Tôi có lỗi này trong mô-đun của bên thứ ba: làm thế nào tôi có thể giải quyết? Tôi có thể chỉnh sửa mô-đun nhưng sau đó khi tôi nâng cấp một phiên bản mới không quan tâm thì sao? Có thể ghi đè?
fabio 17/03/18

Bạn có thể cập nhật và gửi yêu cầu kéo đến mô-đun của bên thứ ba
Gajit

62

nếu bạn muốn nhập ngược lại, nhập nó từ django.urls

from django.urls import reverse

27

Bạn cần thay thế tất cả các lần xuất hiện của:

from django.core.urlresolvers import reverse

đến:

from django.urls import reverse

nhập mô tả hình ảnh ở đây

LƯU Ý: Áp dụng tương tự cho Reverse_lazy

trong Pycharm Cmd+ Shift+ R để bắt đầu thay thế trong Đường dẫn.


Tôi đã gặp lỗi tương tự, đã thử lỗi này và bây giờ gặp lỗi Tệp "C: \ Users \ shift \ Code \ .virtualenvs \ dev \ lib \ site-gói \ cms \ utils \ i18n.py", dòng 4, trong <module> từ django.core.urlresolvers nhập get_resolver, LocaleRegexURLResolver ModuleNotFoundError: Không có mô-đun nào có tên 'django.core.urlresolvers', phải thực hiện câu trả lời đúng thay thế tất cả các tham chiếu. Mặc dù vậy, Django rất tệ, rất nhiều thứ không hoạt động được.
Rich Bianco

3

Đối với những người có thể đang cố gắng tạo Travis Build, đường dẫn mặc định mà Django được cài đặt từ requirements.txttệp trỏ đến một repo có django_extensionsmô-đun chưa được cập nhật. Cách giải quyết duy nhất, hiện tại, là cài đặt từ nhánh chính bằng pip. Đó là nơi các bản vá được thực hiện. Nhưng bây giờ, chúng ta sẽ phải chờ.

Bạn có thể thử điều này trong khi chờ đợi, nó có thể giúp

- pip install git+https://github.com/chibisov/drf-extensions.git@master

- pip install git+https://github.com/django-extensions/django-extensions.git@master



2

Đối với phiên bản django lớn hơn 2.0, hãy sử dụng:

from django.urls import reverse

trong tập tin mô hình của bạn.


1

Nếu các bản dựng của bạn trên TravisCI không thành công vì lý do cụ thể này, bạn có thể giải quyết vấn đề bằng cách cập nhật Tiện ích mở rộng Django trong request.txt của bạn

pip install --upgrade django-extensions

Điều này sẽ cập nhật các phần mở rộng để sử dụng các mô-đun Django 2+.


1

urlresolver đã bị xóa trong phiên bản cao hơn của Django - Vui lòng nâng cấp cài đặt django của bạn. Tôi đã sửa nó bằng lệnh sau.

pip install django==2.0 --upgrade

1

Để giải quyết vấn đề này, bạn hạ cấp Djangoxuống bất kỳ phiên bản nào ít hơn 2.0. pipcài đặt Django==1.11.29.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.