ImportError: cannot import name 'url' from 'django.conf.urls' in packages
У меня есть проект миграции веб-приложения django с Django-3.2.14
на Django-4.0
. Сразу после миграции, когда я запускаю сервер, я получаю ошибку, как показано в выводе Console. Когда я проследил изменения, они были отслежены до пакета django-compat
, который вызывался пакетом django-background-tasks
. my_env
- это мое виртуальное окружение.
У нас есть последняя версия django-compat
, которая 1.0.15 и django-background-tasks
, которая 1.2.5.
Не могли бы вы рассмотреть это?
Заранее спасибо.
Консоль:
В Django-4.0 в настоящее время удален url, вместо этого вы можете сделать следующее:-
from django.urls import re_path as url
Django удалил URL из версии 4.0. Проверьте документацию здесь:
https://django-background-tasks.readthedocs.io/en/latest/#supported-versions-and-compatibility
Альтернативно, вы можете ухудшить его обратно до 3.2.10, что устранит проблему
Обновленный ответ
К сожалению, в настоящее время нет поддерживаемой версии django-background-tasks
. Похоже, что вы не сможете перейти на django 4.0 без перехода на любой другой пакет, который будет выполнять ту же работу, что и django-background-tasks
.
Старый ответ
Пакет background_task
использует django-compat
, который не поддерживается новыми версиями django.
D:\New_Folder\github\myenv\lib\site-packages\background_task\models.py
from compat import StringIO
Насколько я могу судить по трассировке стека, больше нет необходимости использовать пакет django-compat
. Пакет background_task
должен использовать StringIO
непосредственно из пакета по умолчанию io
.
Вам понадобится обновленная версия пакета background_task
, которая больше не использует пакет django-compat
. Насколько я могу судить, не существует новой версии без этой зависимости.