django 错误无法导入名称“RemovedInDjango30Warning”

2024-01-18

伙计们,我对 Django 相当陌生,我刚刚开始从事一个个人项目,并决定滥用 pycharm (我认为它与错误有关,或不相关)。

当我跑步时python manage.py runserver我收到下面发布的错误。我做了一些谷歌搜索,看起来它是由 Django 版本不一致引起的。

我目前有 Django 3.0,我在全局和 venv 中进行了检查。

我尝试在 py charm 之外启动一个项目,但遇到了同样的问题。不知道我需要做什么才能再次开始使用 Django。有人遇到过这个吗?这是因为pycharm吗?如果是这样,我可以做什么来解决这个问题?

(venv) aiden@aiden-XPS-15-9570:~/PycharmProjects/NewsAggregator$ python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/home/aiden/.local/lib/python3.6/site-packages/django/template/utils.py", line 66, in __getitem__
    return self._engines[alias]
KeyError: 'django'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/aiden/.local/lib/python3.6/site-packages/django/template/backends/django.py", line 121, in get_package_libraries
    module = import_module(entry[1])
  File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/aiden/.local/lib/python3.6/site-packages/django/contrib/admin/templatetags/admin_static.py", line 5, in <module>
    from django.utils.deprecation import RemovedInDjango30Warning
ImportError: cannot import name 'RemovedInDjango30Warning'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.6/threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "/home/aiden/.local/lib/python3.6/site-packages/django/utils/autoreload.py", line 53, in wrapper
    fn(*args, **kwargs)
  File "/home/aiden/.local/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 117, in inner_run
    self.check(display_num_errors=True)
  File "/home/aiden/.local/lib/python3.6/site-packages/django/core/management/base.py", line 395, in check
    include_deployment_checks=include_deployment_checks,
  File "/home/aiden/.local/lib/python3.6/site-packages/django/core/management/base.py", line 382, in _run_checks
    return checks.run_checks(**kwargs)
  File "/home/aiden/.local/lib/python3.6/site-packages/django/core/checks/registry.py", line 72, in run_checks
    new_errors = check(app_configs=app_configs)
  File "/home/aiden/.local/lib/python3.6/site-packages/django/contrib/admin/checks.py", line 76, in check_dependencies
    for engine in engines.all():
  File "/home/aiden/.local/lib/python3.6/site-packages/django/template/utils.py", line 90, in all
    return [self[alias] for alias in self]
  File "/home/aiden/.local/lib/python3.6/site-packages/django/template/utils.py", line 90, in <listcomp>
    return [self[alias] for alias in self]
  File "/home/aiden/.local/lib/python3.6/site-packages/django/template/utils.py", line 81, in __getitem__
    engine = engine_cls(params)
  File "/home/aiden/.local/lib/python3.6/site-packages/django/template/backends/django.py", line 25, in __init__
    options['libraries'] = self.get_templatetag_libraries(libraries)
  File "/home/aiden/.local/lib/python3.6/site-packages/django/template/backends/django.py", line 43, in get_templatetag_libraries
    libraries = get_installed_libraries()
  File "/home/aiden/.local/lib/python3.6/site-packages/django/template/backends/django.py", line 108, in get_installed_libraries
    for name in get_package_libraries(pkg):
  File "/home/aiden/.local/lib/python3.6/site-packages/django/template/backends/django.py", line 125, in get_package_libraries
    "trying to load '%s': %s" % (entry[1], e)
django.template.library.InvalidTemplateLibrary: Invalid template library specified. ImportError raised when trying to load 'django.contrib.admin.templatetags.admin_static': cannot import name 'RemovedInDjango30Warning'

这是由 Django 版本冲突引起的,如此处所示。

导入错误:无法导入名称“RemovedInDjango30Warning”

尝试卸载django

sudo pip uninstall django

并使用低于3.0的版本重新安装

sudo pip install django==2.2

Edit

如果您想使用不同版本的 Django,可以使用虚拟环境。

首先创建一个requirements.txt示例here https://www.getfilecloud.com/blog/working-with-virtualenv-on-django-projects/

您可以通过运行 pip freeze 生成项目的需求 命令列出本地安装的所有软件包 机器及其版本。

pip freeze > requirements.txt

请注意,此过程可能会导致某些不必要的包 被写入安装在您的需求文件中 本地计算机,但项目不需要。您必须手动编辑 在这种情况下的需求文件。

然后创建你的虚拟环境

步骤1安装虚拟环境

pip install virtualenv

步骤2 创建虚拟环境

virtualenv env

步骤 3 激活您的环境

env\Scripts\activate

当您想停用时

deactivate

步骤 4 编辑您的requirements.txt以包含您的项目所需的包。

第5步安装requirements.txt(在同一目录中)

pip install -r requirements.txt

使用 mod_wsgi 和 Apache 尝试形成部署信息here https://www.getfilecloud.com/blog/working-with-virtualenv-on-django-projects/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django 错误无法导入名称“RemovedInDjango30Warning” 的相关文章

随机推荐