Mysql
 sql >> база данни >  >> RDS >> Mysql

грешка при импортиране с python-mysql-connector 1.16, django 1.6 и python 3.2.3

След като проучих кода, изглежда, че има някаква грешка при препратката към това импортиране. Погледнах във файла /lib/python3.2/site-packages/django/utils/six.py и открих къде е препратката към модула moves.zip_longest.

Първо беше тази препратка:

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

Което означава, че извикваше класа _MovedItems и ето го с препратката към моя модул, който се повреждаше.

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

Което след това наследява от класа _LazyDescr, но това е кратък малък обект. Не знам къде се объркаха нещата, ако преобразувате кортежа, който се предава в конструктора MovedAttribute, той препоставя правилно старата версия към новата. Не съм сигурен защо се проваля, но ако премахнете командата за импортиране във файла compiler.py и просто извикате директно itertools zip_longest, всичко работи.

Ето как изглежда това. Ако използвате Python 3, редактирайте файла /lib/python3.2/site-packages/mysql/connector/django/compiler.py и променете ред 6 от това:

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

към това:

from itertools import zip_longest



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Премахване на уеб адреса от текстов низ

  2. как да качите повече от едно изображение на сървър (база данни mysql) с помощта на php и android

  3. Как да покажа BLOB изображение, съхранено в MySql база данни?

  4. намерете причините за блокиране на mysql

  5. Сесията работи правилно в Localhost, но не и в CPANEL