从GitHub安装pyodbc后,如何正确用Python连接SQL Server?
解决pyodbc无法连接SQL Server的问题
问题根源
你直接克隆GitHub仓库到脚本目录后,并未完成pyodbc的编译安装,Python实际导入的是未编译的源码目录,而非功能完整的pyodbc模块,因此会出现AttributeError: module 'pyodbc' has no attribute 'connect'错误。
正确安装pyodbc的步骤
- 确保Windows环境已安装Visual Studio C++编译工具(比如Visual Studio Build Tools,勾选"C++桌面开发"组件)——pyodbc是C扩展模块,必须编译才能正常使用。
- 进入克隆生成的
pyodbc子目录(而非脚本根目录),执行以下命令完成安装:cd pyodbc python setup.py install - 安装完成后,删除脚本根目录下的
pyodbc文件夹,避免Python优先导入本地源码目录而非系统中已安装的模块。
正确的SQL Server连接代码
推荐用更安全的f-string格式化连接字符串,同时建议使用更新的ODBC驱动(旧的{SQL Server}驱动兼容性较差):
import pyodbc # 连接配置 server = "servername" database = "DB1" user = "user1" password = "123" # 使用新版ODBC驱动构建连接字符串 conn_str = f"DRIVER={{ODBC Driver 17 for SQL Server}};SERVER={server};DATABASE={database};UID={user};PWD={password}" conn = pyodbc.connect(conn_str) cursor = conn.cursor() print("成功连接SQL Server") # 使用完毕后记得关闭连接 # cursor.close() # conn.close()
额外提示
- 如果没有Visual Studio编译工具,可尝试下载对应Python版本和系统架构的pyodbc预编译轮子(.whl文件),通过
pip install 文件名.whl完成安装(无需访问PyPI,从可信渠道获取轮子文件即可)。 - 提前确认SQL Server允许远程连接,服务器地址、账号密码无误,且防火墙未阻断数据库端口。
内容的提问来源于stack exchange,提问作者AlSub
相关产品推荐
相关产品推荐

