当前位置: 首页 > 知识库问答 >
问题:

django智能选择django 3.0版。1-导入错误:无法从“django”导入名称“six”。utils'[重复]

曹高阳
2023-03-14

已安装django smart selects(pip安装django smart selects),但不适用于django 3.0版。1.

我使用官方安装指南进行了配置

enter code here $ python manage.py runserver
    Watching for file changes with StatReloader
    Exception in thread django-main-thread:
    Traceback (most recent call last):
      File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
        self.run()
      File "/usr/lib/python3.7/threading.py", line 865, in run
        self._target(*self._args, **self._kwargs)
      File "/home/mxcloud3/Desktop/django/venv/lib/python3.7/site-packages/django/utils/autoreload.py", line 53, in wrapper
        fn(*args, **kwargs)
      File "/home/mxcloud3/Desktop/django/venv/lib/python3.7/site-packages/django/core/management/commands/runserver.py", line 109, in inner_run
        autoreload.raise_last_exception()
      File "/home/mxcloud3/Desktop/django/venv/lib/python3.7/site-packages/django/utils/autoreload.py", line 76, in raise_last_exception
        raise _exception[1]
      File "/home/mxcloud3/Desktop/django/venv/lib/python3.7/site-packages/django/core/management/__init__.py", line 357, in execute
        autoreload.check_errors(django.setup)()
      File "/home/mxcloud3/Desktop/django/venv/lib/python3.7/site-packages/django/utils/autoreload.py", line 53, in wrapper
        fn(*args, **kwargs)
      File "/home/mxcloud3/Desktop/django/venv/lib/python3.7/site-packages/django/__init__.py", line 24, in setup
        apps.populate(settings.INSTALLED_APPS)
      File "/home/mxcloud3/Desktop/django/venv/lib/python3.7/site-packages/django/apps/registry.py", line 114, in populate
        app_config.import_models()
      File "/home/mxcloud3/Desktop/django/venv/lib/python3.7/site-packages/django/apps/config.py", line 211, in import_models
        self.models_module = import_module(models_module_name)
      File "/home/mxcloud3/Desktop/django/venv/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 "/home/mxcloud3/Desktop/django/polls/models.py", line 2, in <module>
        from smart_selects.db_fields import GroupedForeignKey
      File "/home/mxcloud3/Desktop/django/venv/lib/python3.7/site-packages/smart_selects/db_fields.py", line 6, in <module>
        from django.utils import six
    ImportError: cannot import name 'six' from 'django.utils' (/home/mxcloud3/Desktop/django/venv/lib/python3.7/site-packages/django/utils/__init__.py)

安装片段

模型。派克

from django.db import models
from smart_selects.db_fields import GroupedForeignKey

class Recipe(models.Model):
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    subcategory = GroupedForeignKey(Subcategory, "category", on_delete=models.CASCADE)

settings.py

INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'smart_selects',
]

JQUERY\u URL=True

共有2个答案

乌修筠
2023-03-14
匿名用户

我想你已经把Django 2升级到Django 3了

对于从django 2到3的交易,您应该执行以下步骤:

将\u delete='CASCADE'上的语句替换为\u delete=models上的。级联

如果您已经安装了Django autocomplete light请将其删除并重新安装(我更喜欢Django autocomplete light==3.8.1)

如果你已经安装了djangorest框架删除它并再次安装它(我更喜欢djangorest框架==3.12.2

我希望你和每个人都能成功

丰佐
2023-03-14

smart\u从django选择库执行。UTIL在其代码的某个地方导入了六个,这会导致导入错误,因为该包已在django 3.0中删除。

如果您无法更新有问题的包(在本例中您无法更新),那么唯一的解决方案就是自己对其进行修补,或者等到库的所有者对其进行修补。

自己修补它是很简单的:

  • pip3安装六个
  • 导航到虚拟环境的Django安装。在这里使用virtualenv:/path/to/python/站点包/django/utils/\uuuu init\uuuu。py
  • 添加导入六个

或者更好的是,用bash的一句话来做:

pip3 install six && echo import six >"$(python3 -c "import sys; print(tuple(filter(lambda x: 'site-packages' in x, sys.path))[0])")"/django/utils/__init__.py

引号中脚本的python3-c在很大程度上取决于能否确定site\u packages目录的位置,并且在某些虚拟环境中不起作用。YMMV

 类似资料:
  • Django taggit在Django 3.0中不起作用,它在Django-2.2等早期版本中工作良好。因为它依赖于django没有的六个库。3.0中的utils

  • 目前我已经将Django 2.2升级到3.0版本,突然出现如下错误。 ImportError:无法从“django”导入名称“six”。乌提尔斯 我已经检查了回溯如下。 我已签入文件夹Lib\site packages\django\utils,但未找到和六个。py文件,但仍然来自Lib\site packages\jsonfield\encode。py包含来自django的行。utils导入六,

  • serializer.py: 意见。py: urls.py: 我遇到了这个错误:ImportError:无法从“django”导入名称“six”。utils'(C:\Users\hajar\OneDrive\Desktop\stockm\env\lib\site packages\django\utils\u init\uuuz.py) 我安装六个pip安装六个 但不是工作????谁能帮我的忙?!

  • 嗨,有人能帮我解决'重要错误:不能导入名称网址'的问题吗?我已经按照教程在这里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

  • 问题内容: 目前,我已经将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发行说明,但是这些资源帮不了我。