【问题标题】:Django 1.5->1.6 cannot import name zip_longestDjango 1.5->1.6 无法导入名称 zip_longest
【发布时间】:2014-03-09 16:21:32
【问题描述】:

我正在尝试将我的项目从 django 版本 1.5 迁移到 1.6。我有奇怪的导入错误,老实说我不知道​​下一步该怎么做:

错误:无法导入名称 zip_longest

...
C:\Python27\lib\site-packages\django-1.6.2-py2.7.egg\django\db\backends\mysql\compiler.py in <module>
from django.db.models.sql import compiler
from django.utils.six.moves import zip_longest 
...

我觉得这很奇怪,因为错误发生在 django 导入中,而且它不是直接在我的代码中

如果有任何解决方法的提示,我将非常感激

最好的问候

【问题讨论】:

  • 阅读您的堆栈跟踪,它显然与SubdomainURLRoutingMiddleware 相关联。如果由于某种原因不再需要它,请尝试将其删除。也许它只是与 Django 1.6 不兼容。
  • 我试图删除它,但它没有帮助。正如我们所看到的,这个错误在 django 导入中,它发生在应用程序想要对数据库做某事的每一刻

标签: python django import


【解决方案1】:

我通过更改 django 1.6 源代码修复了这个错误...所以我认为这不是一个好的解决方案

在文件 django\db\backends\mysql\compiler.py

我替换了代码

from django.utils.six.moves import zip_longest 

from itertools import izip_longest as zip_longest

当我测试我的应用程序在这个补丁上运行良好

顺便说一句,有类似的话题:

import error with python-mysql-connector 1.16, django 1.6, and python 3.2.3

【讨论】:

  • 工作,但有点脏。
【解决方案2】:

我猜你在安装 Django 1.6.2 时遇到问题,导致包含的六个模块损坏。

>>> from django import VERSION
>>> print(VERSION)
(1, 6, 2, 'final', 0)

>>> from django.utils.six.moves import zip_longest
>>> 

【讨论】:

  • 我在 python shell 中输入了这个,一切正常。我会看看这个错误是否发生在 mysql 作为 db 的空 django 项目上。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
  • 1970-01-01
  • 2015-03-01
  • 2011-12-27
  • 2018-05-29
  • 2014-11-06
  • 1970-01-01
相关资源
最近更新 更多