使用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
相关产品推荐
相关产品推荐

