目前我已经将Django 2.2升级到3.0版本,突然出现如下错误。
ImportError:无法从“django”导入名称“six”。乌提尔斯
我已经检查了回溯如下。
Traceback (most recent call last):
File "c:\Users\admin\.vscode\extensions\ms-python.python-2019.11.50794\pythonFiles\ptvsd_launcher.py", line 43, in <module>
main(ptvsdArgs)
File "c:\Users\admin\.vscode\extensions\ms-python.python-2019.11.50794\pythonFiles\lib\python\old_ptvsd\ptvsd\__main__.py", line 432, in main
run()
File "c:\Users\admin\.vscode\extensions\ms-python.python-2019.11.50794\pythonFiles\lib\python\old_ptvsd\ptvsd\__main__.py", line 316, in run_file
runpy.run_path(target, run_name='__main__')
File "C:\Python37\Lib\runpy.py", line 263, in run_path
pkg_name=pkg_name, script_name=fname)
File "C:\Python37\Lib\runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "C:\Python37\Lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:\production\myproject\erp_project\manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "d:\production\myproject\venv\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
utility.execute()
File "d:\production\myproject\venv\lib\site-packages\django\core\management\__init__.py", line 377, in execute
django.setup()
File "d:\production\myproject\venv\lib\site-packages\django\__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "d:\production\myproject\venv\lib\site-packages\django\apps\registry.py", line 92, in populate
app_config = AppConfig.create(entry)
File "d:\production\myproject\venv\lib\site-packages\django\apps\config.py", line 90, in create
module = import_module(entry)
File "d:\production\myproject\venv\lib\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 "d:\production\myproject\venv\lib\site-packages\post_office\__init__.py", line 3, in <module>
from .backends import EmailBackend
File "d:\production\myproject\venv\lib\site-packages\post_office\backends.py", line 6, in <module>
from .settings import get_default_priority
File "d:\production\myproject\venv\lib\site-packages\post_office\settings.py", line 101, in <module>
context_field_class = import_attribute(CONTEXT_FIELD_CLASS)
File "d:\production\myproject\venv\lib\site-packages\post_office\compat.py", line 45, in import_attribute
module = importlib.import_module(module_name)
File "d:\production\myproject\venv\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "d:\production\myproject\venv\lib\site-packages\jsonfield\__init__.py", line 1, in <module>
from .fields import JSONField, JSONCharField # noqa
File "d:\production\myproject\venv\lib\site-packages\jsonfield\fields.py", line 21, in <module>
from .encoder import JSONEncoder
File "d:\production\myproject\venv\lib\site-packages\jsonfield\encoder.py", line 2, in <module>
from django.utils import six, timezone
ImportError: cannot import name 'six' from 'django.utils' (d:\production\myproject\venv\lib\site-packages\django\utils\__init__.py)
我已签入文件夹Lib\site packages\django\utils,但未找到和六个。py文件,但仍然来自Lib\site packages\jsonfield\encode。py包含来自django的行。utils导入六,时区尝试导入六,但无法找到。
django的早期版本包含六个。文件夹Lib\site packages\django\utils中的py文件。
知道怎么解决这个问题吗?
Django 3.0发行说明中指定的django.utils.six
被删除。如果你需要它,建议使用pypi包代替
在您的情况下,jsonfield
包可能会被原生Django的JSON字段替换。另一个解决方案是forkjsonfield
package自己解决问题,或者对项目的回购进行公关
为了使用six模块,您可以直接使用pip安装它,然后相应地修改django jsonfield包。我的意思是在包中找到来自django的文件。UTIL导入六个
,并将其替换为导入六个。那么它应该会起作用。在django 3.0中使用djongo时,我遇到了同样的问题。我找到了相应的文件,并将其替换为上述建议。请注意,如果您从事的是生产级或企业级项目,则不建议这样做。我这样做是为了我的宠物项目。
简而言之:您可能想要放弃django-jsonfield
。
根据回溯,您使用的是djangojsonfield
包[GitHub],这是一个已知问题[GitHub问题]。这取决于django。乌提尔斯。六个
模块,但该模块已在django-3.0中删除。
目前,您无法将django-3.0与django jsonfield一起使用,而且由于该项目的最后一次提交时间是2017年10月,因此该项目可能不再“活跃”,因此可能需要很长时间(甚至永远不会)才能修复。django jsonfield的继承者是jsonfield2([GitHub])。通过2019年10月的pull请求,它与django-3.0兼容[GitHub pr]。
已安装django smart selects(pip安装django smart selects),但不适用于django 3.0版。1. 我使用官方安装指南进行了配置。 安装片段 模型。派克 settings.py JQUERY\u URL=True
Django taggit在Django 3.0中不起作用,它在Django-2.2等早期版本中工作良好。因为它依赖于django没有的六个库。3.0中的utils
问题内容: 目前,我已经将Django的版本从升级到,并且在调用时突然出现以下错误: 完整跟踪: 问题答案: Django 3.0.0发行说明指定删除了某些私有的Python 2兼容性API。其中有。 对于此错误,@ WillemVanOnsem特别指出该模块正在引用该模块。 对于遇到相同问题的其他人,查看stacktrace的最后一行上的文件路径可以帮助识别有问题的模块。我看到的另一个例子是:
最近,我将Django framework的版本从升级到,在调用命令后,突然出现了以下异常: 重要错误:无法从django.utils导入名称六(/path-to-project/project/venv/lib/python3.7/site-包/django/utils/init.py) 完整跟踪: 类似问题: 我读了这个问题和这个django-3.0发行说明,但是这些资源帮不了我。
嗨,有人能帮我解决'重要错误:不能导入名称网址'的问题吗?我已经按照教程在这里https://docs.djangoproject.com/en/1.9/intro/tutorial01/ 我尝试了另一个教程https://docs.djangoproject.com/zh-hans/2.0/ref/urls/#django.urls.include 但是他们都不工作我的Django版本是1.11
我正在尝试运行Buildroot(2017.02)的scanpypi脚本-支持脚本,但是我得到了ImportError:cannotimport name get_importer。 回溯(最后一次调用):文件“/support/scripts/scanpypi”,第52行,导入setuptools文件“/usr/local/lib/python2.7/dist-packages/setuptoo