sql >> Databáze >  >> RDS >> Mysql

chyba importu s python-mysql-connector 1.16, django 1.6 a python 3.2.3

Po prostudování kódu to vypadá, že při odkazování na tento import došlo k nějaké chybě. Podíval jsem se do souboru /lib/python3.2/site-packages/django/utils/six.py a našel jsem odkaz na modul moves.zip_longest.

První byla tato reference:

moves = sys.modules[__name__ + ".moves"] = _MovedItems(__name__ + ".moves")

Což znamená, že volalo třídu _MovedItems a tady je to s odkazem na můj modul, který se porouchal.

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

Který pak dědí z třídy _LazyDescr, ale to je malý malý objekt. Nevím, kde se stala chyba, pokud namapujete předávanou n-tici do konstruktoru MovedAttribute, namapuje správně starou verzi na novou. Nejsem si jistý, proč to selhává, ale pokud odstraníte příkaz import v souboru kompilátor.py a jednoduše přímo zavoláte itertools zip_longest, vše funguje.

Tady je to, jak to vypadá. Pokud používáte Python 3, upravte soubor /lib/python3.2/site-packages/mysql/connector/django/compiler.py a změňte řádek 6 z tohoto:

from django.utils.six.moves import zip_longest as six_zip_longest

na toto:

from itertools import zip_longest



  1. MySQL a zamkněte tabulku, přečtěte si ji a pak ji ořízněte

  2. export tabulky do csv na postgres

  3. Mám použít ON DELETE CASCADE, :dependent => :destroy, nebo obojí?

  4. Jak vytvořím migraci kolejnic pro odstranění/změnu přesnosti a měřítka v desítkové soustavě?