django-pyodbc-azure 2.1.0.0 не поддерживает Django 2.1.0

Мы пытаемся связать Django-2.1 с MS SQL Server 2012. Мы искали модули, которые можно использовать для этого, и наткнулись на django-pyodbc-azure. Мы установили его, и при перезапуске приложения мы получили следующее сообщение об ошибке:

Unhandled exception in thread started by <function check_errors.<locals>.wrapper
 at 0x0000006140CB2BF8>
Traceback (most recent call last):
  File "C:\Program Files\Python36\lib\site-packages\django\utils\autoreload.py",
 line 225, in wrapper
    fn(*args, **kwargs)
  File "C:\Program Files\Python36\lib\site-packages\django\core\management\comma
nds\runserver.py", line 109, in inner_run
    autoreload.raise_last_exception()
  File "C:\Program Files\Python36\lib\site-packages\django\utils\autoreload.py",
 line 248, in raise_last_exception
    raise _exception[1]
  File "C:\Program Files\Python36\lib\site-packages\django\core\management\__ini
t__.py", line 337, in execute
    autoreload.check_errors(django.setup)()
  File "C:\Program Files\Python36\lib\site-packages\django\utils\autoreload.py",
 line 225, in wrapper
    fn(*args, **kwargs)
  File "C:\Program Files\Python36\lib\site-packages\django\__init__.py", line 24
, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Program Files\Python36\lib\site-packages\django\apps\registry.py", li
ne 112, in populate
    app_config.import_models()
  File "C:\Program Files\Python36\lib\site-packages\django\apps\config.py", line
 198, in import_models
    self.models_module = import_module(models_module_name)
  File "C:\Program Files\Python36\lib\importlib\__init__.py", line 126, in impor
t_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Program Files\Python36\lib\site-packages\django\contrib\auth\models.p
y", line 2, in <module>
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  File "C:\Program Files\Python36\lib\site-packages\django\contrib\auth\base_use
r.py", line 47, in <module>
    class AbstractBaseUser(models.Model):
  File "C:\Program Files\Python36\lib\site-packages\django\db\models\base.py", l
ine 101, in __new__
    new_class.add_to_class('_meta', Options(meta, app_label))
  File "C:\Program Files\Python36\lib\site-packages\django\db\models\base.py", l
ine 304, in add_to_class
    value.contribute_to_class(cls, name)
  File "C:\Program Files\Python36\lib\site-packages\django\db\models\options.py"
, line 203, in contribute_to_class
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length(
))
  File "C:\Program Files\Python36\lib\site-packages\django\db\__init__.py", line
 33, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "C:\Program Files\Python36\lib\site-packages\django\db\utils.py", line 20
2, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "C:\Program Files\Python36\lib\site-packages\django\db\utils.py", line 11
0, in load_backend
    return import_module('%s.base' % backend_name)
  File "C:\Program Files\Python36\lib\importlib\__init__.py", line 126, in impor
t_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "C:\Program Files\Python36\lib\site-packages\sql_server\pyodbc\base.py",
line 11, in <module>
    raise ImproperlyConfigured("Django %d.%d.%d is not supported." % VERSION[:3]
)
django.core.exceptions.ImproperlyConfigured: Django 2.1.0 is not supported.

Мы пробовали многие версии Django, такие как 2.x, 2.0.4, 2.1, и все версии, похоже, выдают одну и ту же ошибку, которая

Django 2.x.x is not supported.

Информация о базе данных в settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'HOST': 'xxxxxx,1433',
        'USER': 'xxxxxxxx',
        'PASSWORD': 'xxxxxxxx',
        'NAME': 'xxxxxx',
        'OPTIONS': {
            'driver': 'ODBC Driver 17 for SQL Server',
            'host_is_server': True
        },
    }
}

Любые выводы будут оценены. Спасибо.


person Kaushik    schedule 04.09.2018    source источник
comment
С django-pyodbc-azure вам нужно убедиться, что младшая версия соответствует младшей версии Django. Вы уверены, что используете Django==2.1.x и django-pyodbc-azure==2.1.x? Вы можете зарегистрировать pip freeze? Эта строка указывает, что это должно работать: github.com/michiya/django-pyodbc-azure/blob/azure-2.1/   -  person FlipperPA    schedule 04.09.2018
comment
@FlipperPA - Спасибо за вашу поддержку. Я установил django-pyodbc-azure 2.1 с сайта github.com/michiya/django-pyodbc-azure и с установленной версией django 2.1, но когда я замораживаю pip, версия django-pyodbc-azure показывает django-pyodbc-azure==1.10.0.1. Это ожидается или есть другая ссылка на django-pyodbc-azure 2.1?   -  person Kaushik    schedule 05.09.2018


Ответы (2)


Эта проблема устранена путем загрузки wheel file из django-pyodbc-azure 2.1.0.0 с сайта https://pypi.org/project/django-pyodbc-azure/#files и установка с помощью команды pip install django_pyodbc_azure-2.1.0.0-py3-none-any.whl.

person Kaushik    schedule 05.09.2018
comment
Для установки через pip с GitHub можно указать ветку: pip install git+https://github.com/michiya/[email protected] должно работать. Похоже, вы могли установить из другой ветки. Хороший сыщик, я рад, что у вас все получилось! - person FlipperPA; 05.09.2018

У меня была такая же проблема несколько месяцев назад. Окончательная комбинированная версия работала: python 3.5 и django 1.11 с django-pyodbc-azure последней версией.

person iamabhaykmr    schedule 04.09.2018