Efter att ha studerat koden ser det ut som att det finns något slags fel när man refererar till den importen. Jag tittade i filen /lib/python3.2/site-packages/django/utils/six.py och hittade var referensen var till modulen moves.zip_longest.
Först var denna referens:
moves = sys.modules[__name__ + ".moves"] = _MovedItems(__name__ + ".moves")
Vilket betyder att den anropade klassen _MovedItems, och här är den med referensen till min modul som gick sönder.
class _MovedItems(_LazyModule):
"""Lazy loading of moved objects"""
_moved_attributes = [
MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest")
class MovedAttribute(_LazyDescr):
def __init__(self, name, old_mod, new_mod, old_attr=None, new_attr=None):
super(MovedAttribute, self).__init__(name)
if PY3:
if new_mod is None:
new_mod = name
self.mod = new_mod
if new_attr is None:
if old_attr is None:
new_attr = name
else:
new_attr = old_attr
self.attr = new_attr
Som sedan ärver från klassen _LazyDescr, men det är ett kort litet objekt. Jag vet inte var det gick fel, om du mappar tuppeln som skickas till MovedAttribute-konstruktorn mappar den den gamla versionen till den nya korrekt. Jag är inte säker på varför det misslyckas men om du tar bort importsatsen i filen compiler.py och helt enkelt anropar itertools zip_longest direkt, fungerar allt.
Så här ser det ut. Om du använder Python 3, redigera filen /lib/python3.2/site-packages/mysql/connector/django/compiler.py och ändra rad 6 från detta:
from django.utils.six.moves import zip_longest as six_zip_longest
till detta:
from itertools import zip_longest