该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 安装
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