由于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.
我也在谷歌上搜索了这个,出现的解决方案是手动更改引发这个错误的条件。我这样做了,然后我得到了另一个错误:
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'
我也在谷歌上搜索过,但对其他人有效的解决方案对我不起作用。我已经在这一点上呆了好几天了。请发送帮助!
其他信息:我使用这两个参数:
ENGINE':'sql_server.pyodbc'
'driver': 'ODBC Driver 17 for SQL Server'
注意:如果你知道我可以将这些包与新版本的Django一起使用的另一种方法,请分享。
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/