sql >> Database teknologi >  >> RDS >> Mysql

importfejl med python-mysql-connector 1.16, django 1.6 og python 3.2.3

Efter at have studeret koden ser det ud til, at der er en form for fejl, når du refererer til den import. Jeg kiggede i filen /lib/python3.2/site-packages/django/utils/six.py og fandt, hvor referencen var til moves.zip_longest-modulet.

Først var denne reference:

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

Hvilket betyder, at den kaldte klassen _MovedItems, og her er den med henvisningen til mit modul, der gik i stykker.

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 så arver fra klassen _LazyDescr, men det er et kort lille objekt. Jeg ved ikke, hvor tingene gik galt, hvis du kortlægger tuplen, der sendes ind i MovedAttribute-konstruktøren, kortlægger den den gamle version korrekt til den nye. Jeg er ikke sikker på, hvorfor det fejler, men hvis du fjerner importerklæringen i compiler.py-filen og blot kalder itertools zip_longest direkte, virker det hele.

Sådan ser det ud. Hvis du bruger Python 3, skal du redigere filen /lib/python3.2/site-packages/mysql/connector/django/compiler.py og ændre linje 6 fra denne:

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

til dette:

from itertools import zip_longest



  1. Brug af Prepared Statement i C# med Mysql

  2. Fejl under forbindelse til postgresql ved hjælp af sqlalchemy

  3. PDO slet specificeret række fra tabellen

  4. Hvordan ændres database_url på heroku?