Как исправить ошибки зависимостей pyodb c при обновлении Django с 2.1 до 2.2.13? - PullRequest
1 голос
/ 09 июля 2020

Поскольку версия 2.1 была отмечена как небезопасная, мне нужно обновить ее как минимум до> = 2.2. Безопасность Github предлагает установить 2.2.13. Мне также нужно установить другие пакеты, которые работают только с Django> = 2.2.

Обновление Django прошло успешно, но когда pipenv пытается заблокировать зависимости, я получаю эту ошибку:

Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.

Я погуглил это, и единственный способ избавиться от этой ошибки - это поместить эти две зависимости в [dev-packages]:

django-pyodbc-azure = "<2.1"
django-pyodbc = "<2.1"

Но когда я пытаюсь запустить сервер, я получаю следующее:

ImproperlyConfigured("Django %d.%d.%d is not supported." % VERSION[:3])
django.core.exceptions.ImproperlyConfigured: Django 2.2.13 is not supported.

Я также искал это в Google, и решение, которое появляется, - это вручную изменить условия для возникновения этой ошибки. Я делаю это, а затем получаю другую ошибку:

django.core.exceptions.ImproperlyConfigured: 'sql_server.pyodbc' isn't an available database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
    'mysql', 'oracle', 'postgresql', 'sqlite3'

Я тоже искал в Google, но решения, которые работали для других людей, не работали для меня. Я застрял в этой точке несколько дней. Пожалуйста, пришлите помощь!

Другая информация: Я использую эти два параметра:

ENGINE':'sql_server.pyodbc'
'driver': 'ODBC Driver 17 for SQL Server'

Примечание: Если вы знаете другой способ, я могу использовать эти пакеты с более новыми версия Django поделитесь, пожалуйста.

1 Ответ

1 голос
/ 10 июля 2020

django-pyodbc-azure, к сожалению, больше не поддерживается. Есть новый пакет, который вы можете использовать в качестве замены. Он поддерживает Django 2.2 и 3.0.

https://pypi.org/project/django-mssql-backend/

Я бы рекомендовал вам полностью удалить все ссылки на pyodbc, django-pyodbc и django-pyodbc-azure. Затем обновите свои зависимости (например, в Pipfile или requirements.txt), чтобы добавить:

django-mssql-backend==2.8.1
django>=2.2,<3

Попробуйте в новой виртуальной среде, когда у вас будет возможность убедиться, что вы этого не сделаете. есть django-pyodbc-azure торчать. Если у вас возникнут дополнительные проблемы, мы можем проработать их в комментариях и исправить ответ. Не думаю, что он вам понадобится, но у меня есть более подробное руководство, доступное здесь: https://www.pyphilly.org/django-and-sql-server-2020-edition/

...