安装 mssql-python

该mssql-python驱动程序是 Microsoft 官方的 Python 驱动,适用于 SQL Server、Azure SQL 数据库、Azure SQL 托管实例 以及 Microsoft Fabric 中的 SQL 数据库。 在Windows、Linux或macOS上使用pip或conda安装驱动。

先决条件

  • 该驱动需要 Python 3.10 或更高版本,且不支持更早的 Python 版本。
  • 要使用 pip 安装,请使用随 Python 一起提供的 pip 包管理器。
  • 要使用 conda 安装,请使用 conda 包管理器。

Important

mssql-python驱动使用 DDBC (直接数据库连接),该程序在内部捆绑和管理ODBC层。 你无需单独安装用于 SQL Server 的 Microsoft ODBC 驱动程序。

从 PyPI 安装

使用PIP安装驱动:

pip install mssql-python

升级现有安装:

pip install --upgrade mssql-python

安装特定版本:

pip install mssql-python==1.16.0

该 pip install mssql-python 命令还安装了驱动程序运行时所需的两个配套包:

  • mssql-python-odbc随附 Microsoft ODBC Driver 18 二进制文件。
  • mssql-python-rs 随附为批量复制和可选启用的 mssql-odbc 提供程序提供支持的 Rust 运行时。

从 1.16.0 版本开始,mssql-python 会将这两个软件包固定为确切版本。 早期版本不需要 mssql-python-rs。 关于按版本固定,请参见 依赖要求。

从 conda 安装

该驱动也可在 microsoft 上的 频道获取:

conda install -c microsoft mssql-python

conda包是一个自包含的包。 它包含了 Python 绑定、ODBC 驱动二进制文件和 Rust 运行时,因此 conda 会安装一个包而不是三个。 在环境中运行 pip list 时仍然显示 mssql-python-odbc 和 mssql-python-rs,因为 conda 包包含了这些包的元数据。 Conda会选择与你的平台和Python版本匹配的构建,并管理升级:

conda update -c microsoft mssql-python

在特定环境中使用 conda 或 pip 安装驱动,二者选其一,不要同时使用两者。

conda 软件包有以下平台要求:

Platform Python 版本 要求
Windows x64 3.10 到 3.15 None.
Windows ARM64 3.12至3.15 None.
Linux x64,Linux ARM64 3.10 到 3.15 GLIBC 2.34及更高版本。 在Red Hat Enterprise Linux(RHEL)8、Alpine Linux及其他使用较旧glibc或musl的发行版上使用pip。
macOS Intel,macOS Apple Silicon 3.10 到 3.15 macOS 15及以后版本。 加密连接需要在系统中安装 OpenSSL,如 macOS 中所述。 驱动未从 conda 环境加载 OpenSSL。

验证安装

安装后,请确认驱动是否正常工作:

import mssql_python

print(f"mssql-python version: {mssql_python.__version__}")
print(f"DB-API level: {mssql_python.apilevel}")
print(f"Thread safety: {mssql_python.threadsafety}")
print(f"Parameter style: {mssql_python.paramstyle}")

预期输出:

mssql-python version: 1.16.0
DB-API level: 2.0
Thread safety: 1
Parameter style: pyformat

特定于平台的注释

Windows操作系统

驱动程序按预构建 wheel 提供,包含所有必要部件。

Linux

该驱动程序需要某些系统库以实现 Kerberos 认证和动态加载。 使用你发行版的包管理器安装它们:

Ubuntu/Debian:

sudo apt-get update
sudo apt-get install libltdl7 libkrb5-3 libgssapi-krb5-2

红帽/CentOS/Fedora:

sudo dnf install libtool-ltdl krb5-libs

注释

在 RHEL 8 和其他兼容 glibc 2.28 的发行版(AlmaLinux 8、Rocky Linux 8)上,驱动程序可通过发布到 PyPI 上的标准 manylinux_2_28 wheel 包进行安装。

Alpine Linux:

apk add libltdl krb5-libs libstdc++

macOS

驱动程序以 universal2 胖二进制文件形式提供,可在 Apple Silicon (arm64) 和 Intel (x86_64) Mac 上原生运行。 你不需要单独安装 UnixODBC。

驱动需要OpenSSL。 通过使用Homebrew安装:

brew install openssl

如果遇到 SSL 相关错误,请确保 OpenSSL 已正确链接:

export LDFLAGS="-L/opt/homebrew/opt/openssl/lib"
export CPPFLAGS="-I/opt/homebrew/opt/openssl/include"

虚拟环境

为避免冲突,建议在虚拟环境中安装 Python 包:

# Create a virtual environment
python -m venv .venv

# Activate it (Windows)
.venv\Scripts\activate

# Activate it (Linux/macOS)
source .venv/bin/activate

# Install the driver
pip install mssql-python

开发安装

若要安装包含开发依赖项的驱动程序以为驱动程序做贡献:

git clone https://github.com/microsoft/mssql-python.git
cd mssql-python
pip install -e ".[dev]"

解决安装问题

PIP安装失败,显示“无匹配发行版”

确保你使用的是 Python 3.10 或更高版本:

python --version

如果你用的是较旧的 Python 版本,建议升级 Python 或用 pyenv 管理多个版本。

安装后导入错误

如果你看到ModuleNotFoundError: No module named 'mssql_python',请确认你使用的是安装包的同一个 Python 环境。

pip show mssql-python

Linux/macOS 上的权限错误

如果遇到权限错误,请避免使用 sudo pip。 而应使用虚拟环境或 --user 标志。

pip install --user mssql-python