You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Django连接企业SQL Server时出现No module named 'sql_server'错误

解决Django对接SQL Server时"No module named 'sql_server'"的问题

结合你的环境配置,我整理了几个针对性的排查和解决步骤,帮你搞定这个模块找不到的问题:

1. 检查DATABASES的ENGINE配置是否正确

这是最容易踩坑的点!针对django-pyodbc-azure 2.0.3(适配Django2.0.x版本),正确的数据库引擎路径必须是sql_server.pyodbc,很多人会写错成其他路径导致报错。你可以对照调整settings.py里的DATABASES配置,确保结构类似这样:

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',  # 重点确认这一行!
        'NAME': '你的目标数据库名',
        'USER': '数据库登录用户名',
        'PASSWORD': '数据库登录密码',
        'HOST': 'SQL Server服务器地址',
        'PORT': '1433',  # 默认端口,根据实际情况修改
        'OPTIONS': {
            'driver': 'ODBC Driver 17 for SQL Server',  # 驱动版本要和你本地安装的ODBC驱动匹配
        },
    }
}

2. 确认依赖包安装在当前项目环境中

如果你用了虚拟环境,一定要确保是在激活虚拟环境的状态下安装的django-pyodbc-azure等依赖。可以在终端运行以下命令查看已安装包:

pip list

检查输出里有没有django-pyodbc-azure,且版本是2.0.3(和你的Django2.0.3版本对应)。如果没找到或者版本不对,重新激活虚拟环境后执行安装命令:

pip install django-pyodbc-azure==2.0.3

3. 验证Python环境一致性

有时候会出现“安装依赖用的是A环境,启动服务器用的是B环境”的情况,导致模块找不到。你可以运行以下命令确认当前使用的Python路径:

which python  # Linux/macOS环境
where python  # Windows环境

对比安装依赖时的Python路径,确保两者是同一个环境。

4. 尝试重新安装依赖包

如果以上步骤都没问题,可以尝试卸载后重新安装相关依赖,避免安装过程中出现文件损坏:

pip uninstall django-pyodbc-azure pyodbc pypiwin32
pip install django-pyodbc-azure==2.0.3 pyodbc==4.0.22 pypiwin32==219

按这些步骤排查后,应该就能解决找不到sql_server模块的问题了。

内容的提问来源于stack exchange,提问作者kivo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:35:43