首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ImportError:无法在包中从'django.conf.urls‘导入名称'url’

ImportError:无法在包中从'django.conf.urls‘导入名称'url’
EN

Stack Overflow用户
提问于 2022-07-10 17:32:38
回答 2查看 949关注 0票数 -1

我有一个将django web应用程序从Django-3.2.14迁移到Django-4.0的项目。迁移之后,当我运行服务器时,就会得到控制台输出中所示的错误。当我跟踪更改时,它跟踪到django-compat包,django-background-tasks包正在调用该包。my_env是我的虚拟环境。

我们有最新版本的django-compat ( 1.0.15 )和django-background-tasks ( 1.2.5 )。

你能查一下这个吗?

提前谢谢你。

控制台:

代码语言:javascript
运行
复制
(myenv) D:\New_Folder\github\project\project_name>python manage.py runserver
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "D:\New_Folder\github\myenv\lib\site-packages\compt\__init__.py", line 46, in <module>
    from django.conf.urls import url, include, handler404, handler500
ImportError: cannot import name 'url' from 'django.conf.urls' (D:\New_Folder\github\myenv\lib\site-packages\django\conf\urls\__init__.py)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\threading.py", line 980, in _bootstrap_inner
    self.run()
  File "C:\Program Files\Python39\lib\threading.py", line 917, in run
    self._target(*self._args, **self._kwargs)
  File "D:\New_Folder\github\myenv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "D:\New_Folder\github\myenv\lib\site-packages\django\core\management\commands\runserver.py", line 125, in inner_run
    autoreload.raise_last_exception()
  File "D:\New_Folder\github\myenv\lib\site-packages\django\utils\autoreload.py", line 87, in raise_last_exception
    raise _exception[1]
  File "D:\New_Folder\github\myenv\lib\site-packages\django\core\management\__init__.py", line 398, in execute
    autoreload.check_errors(django.setup)()
  File "D:\New_Folder\github\myenv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "D:\New_Folder\github\myenv\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "D:\New_Folder\github\myenv\lib\site-packages\django\apps\registry.py", line 116, in populate
    app_config.import_models()
  File "D:\New_Folder\github\myenv\lib\site-packages\django\apps\config.py", line 304, in import_models
    self.models_module = import_module(models_module_name)
  File "C:\Program Files\Python39\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "D:\New_Folder\github\myenv\lib\site-packages\background_task\models.py", line 9, in <module>
    from compat import StringIO
  File "D:\New_Folder\github\myenv\lib\site-packages\compat\__init__.py", line 48, in <module>
    from django.conf.urls.defaults import url, include, handler404, handler500  # pyflakes:ignore
ModuleNotFoundError: No module named 'django.conf.urls.defaults'
EN

Stack Overflow用户

回答已采纳

发布于 2022-07-10 21:07:09

更新答复

遗憾的是,目前还没有支持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

代码语言:javascript
运行
复制
from compat import StringIO

据我在堆栈跟踪中所见,不需要再使用django-compat包了。background_task包应该直接从默认的io包中使用io

您将需要background_task包的更新版本,它不再使用django-compat包。据我所见,在没有依赖项的情况下没有新版本。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72930532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档