安装 mssql-django

mssql-django 包是微软官方支持的 Django 数据库后端,适用于 SQL Server、Azure SQL 数据库、Azure SQL 托管实例 和 Microsoft Fabric 中的 SQL 数据库。 本文介绍如何安装包及其依赖项。

先决条件

  • Python 3.10 到 3.14。 Django 6.0及以后版本至少需要Python 3.12。
  • pip 包管理器(Python 3.4 及更高版本随附)
  • 适用于 SQL Server 的 Microsoft ODBC 驱动程序 17 或 18,适用于使用默认 pyodbc 驱动程序的数据库别名。 请参阅下载适用于 SQL Server 的 ODBC 驱动程序。

Important

mssql-django 2.0 需要 mssql-python 1.15.0 或更高版本,即使每个数据库别名都使用 pyodbc。 该软件包仅安装在兼容 mssql-python 发行版的平台上。 其他平台的项目仍保留在1.8.0版本。 关于平台列表,请参见 mssql-django 支持和生命周期。

从 PyPI 安装

使用 pip 安装该软件包。 该命令还会自动安装 Django、pyodbc、mssql-python 以及 tzdata:

pip install mssql-django

升级现有安装:

pip install --upgrade mssql-django

安装特定版本:

pip install mssql-django==2.0.0

依赖项和版本兼容性

对于 mssql-django 2.0,包元数据包含以下依赖约束:

组件 版本指南
Python 3.10 到 3.14
Django >=5.2 和 <6.2
pyodbc >=3.0
mssql-python >=1.15.0
tzdata 作为依赖项安装

Tip

让 pip 解析兼容版本,除非你有经过测试的锁定文件。 固定旧 pyodbc 版本可能会导致运行时问题,即使安装成功也是如此。

选择数据库驱动

pyodbc 是默认驱动,无需配置。 如果要改为在 mssql-python 上运行某个数据库别名,请将 "python_driver": "mssql_python" 添加到该别名的 OPTIONS 字典中。 别名可以在同一项目中使用不同的驱动程序。 关于行为差异以及每个驱动忽略的选项,请参见 MSSQL-django 的“选择数据库驱动”。

验证安装

安装后,请验证包是否已正确安装:

pip show mssql-django

预期输出:

Name: mssql-django
Version: 2.0.0
Summary: Django backend for Microsoft SQL Server

验证默认 pyodbc 路径所使用的 ODBC 层:

import pyodbc

print(f"pyodbc version: {pyodbc.version}")
print(f"Available ODBC drivers: {pyodbc.drivers()}")

注释

mssql-django 后端会在 Django 的数据库路由系统中被自动配置。 不要直接在应用程序代码中导入它。 而应在ENGINE配置中将mssql设置为DATABASES。

使用虚拟环境

使用Python虚拟环境隔离项目依赖项:

python -m venv .venv

激活虚拟环境:

.venv\Scripts\activate

然后在虚拟环境中安装 mssql-django :

pip install mssql-django

特定于平台的注释

使用默认 pyodbc 驱动的数据库别名需要单独安装 ODBC 驱动程序,安装步骤因操作系统而异。 使用 mssql-python 的别名无需执行这些步骤。 相反,安装 mssql-python 的平台前置条件,包括 macOS 上的 OpenSSL 和 Linux 上的必要库。

Windows操作系统

使用来自 .msi 的 安装程序安装 Microsoft ODBC Driver 18 for SQL Server。

Linux

使用分发的包管理器安装 ODBC 驱动程序。 有关特定于平台的说明,请参阅安装适用于 SQL Server(Linux)的 Microsoft ODBC 驱动程序。

macOS

使用 Homebrew 安装 ODBC 驱动程序:

brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql18

依赖关系

该 mssql-django 包会自动安装以下依赖项:

Package Purpose
Django Web 框架
pyodbc Python 默认 ODBC 数据库驱动程序
mssql-python 需主动启用的 Python 数据库驱动程序,无条件安装
tzdata 用于标准库 zoneinfo 模块的 IANA 时区数据库

后端通过标准库zoneinfo模块转换时区感知datetime值。 zoneinfo 会在存在时读取操作系统的 IANA 时区数据库,否则会回退到 tzdata 包,该包适用于 Windows 和精简容器镜像。 pytz 不再是依赖项。