【发布时间】:2020-03-30 06:55:29
【问题描述】:
最近我将Django框架的版本从2.0.6升级到3.0,突然在调用python manage.py shell命令后,出现了这个异常: p>
ImportError: cannot import name 'six' from 'django.utils' (/path-to-project/project/venv/lib/python3.7/site-packages/django/utils/init.py)
完整跟踪:
Traceback (most recent call last):
File "manage.py", line 13, in <module>
execute_from_command_line(sys.argv)
File "/path-to-project/project/venv/lib/python3.7/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
utility.execute()
File "/path-to-project/project/venv/lib/python3.7/site-packages/django/core/management/__init__.py", line 377, in execute
django.setup()
File "/path-to-project/project/venv/lib/python3.7/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/path-to-project/project/venv/lib/python3.7/site-packages/django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "/path-to-project/project/venv/lib/python3.7/site-packages/django/apps/config.py", line 90, in create
module = import_module(entry)
File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/path-to-project/project/venv/lib/python3.7/site-packages/corsheaders/__init__.py", line 1, in <module>
from .checks import check_settings # noqa: F401
File "/path-to-project/project/venv/lib/python3.7/site-packages/corsheaders/checks.py", line 7, in <module>
from django.utils import six
类似问题:
我读过这个Question 和这个django-3.0、release note,但是这些资源对我没有帮助。
【问题讨论】:
-
您使用的包
corsheaders仍然使用已删除的模块。 -
@MohammadMasoumi 基本上,如果您的代码中有类似
from django.utils import six的显式语句,则删除它们,然后系统地修改requirements.txt中抱怨此问题的所有包的版本。在我的情况下,我还必须碰到django-nested-admin和djangorestframework。 -
如果您正在使用尚未更新为可与 django 3.0 一起使用的软件包,您可以使用 simple patch 解决此问题。
-
嗨 Mohammad,您的问题解决了吗?什么是正确的解决方案?
-
嗨@MostafaGhadimi,正如@WillemVanOnsem 提到的,我通过升级
corsheaders包解决了这个问题。感谢您在这里分享您的经验作为答案,我希望它能解决某人的问题。
标签: django-3.0 django