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

通过Anaconda运行Jupyter时pyodbc找不到ODBC Driver 17 for SQL Server,其他环境正常

解决方案

问题根源

Anaconda虚拟环境会默认隔离系统级的库与配置文件,你conda环境中安装的pyodbc关联的是conda自带的unixODBC组件,不会读取系统路径下的ODBC驱动配置,因此出现识别不到驱动的问题。

快速验证方案

你可以直接在连接代码中指定驱动的绝对路径,无需依赖pyodbc的驱动名称识别:

  1. 先在系统终端执行命令获取驱动实际路径:
odbcinst -j

在输出中找到DRIVERS对应的配置文件路径,打开该路径下的odbcinst.ini文件,找到[ODBC Driver 17 for SQL Server]段落,复制Driver字段对应的文件路径,通常为/usr/local/lib/libmsodbcsql.17.dylib(Intel芯片Mac)或/opt/homebrew/lib/libmsodbcsql.17.dylib(M系列芯片Mac)。
2. 修改你的数据库连接代码:
将原来连接字符串中的DRIVER={ODBC Driver 17 for SQL Server}替换为DRIVER=你刚才复制的驱动绝对路径即可正常连接。

永久修复方案(让Anaconda环境正常识别驱动名称)

方法1:使用系统pip重装pyodbc

激活你要使用的Anaconda虚拟环境后,执行以下命令:

pip uninstall pyodbc -y
pip install pyodbc

不要使用conda install pyodbc安装,conda源的pyodbc默认会绑定conda自带的unixODBC组件,不会读取系统配置。

方法2:配置Anaconda环境变量

  1. 执行conda env list找到你目标虚拟环境的实际存储路径,假设为/Users/xxx/opt/anaconda3/envs/myenv
  2. 在该路径下新建etc/conda/activate.d/odbc_config.sh文件,写入以下内容:
export ODBCSYSINI=/usr/local/etc
export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH

注意将上述路径替换为你之前执行odbcinst -j输出的对应系统路径。
3. 重新激活虚拟环境后启动Jupyter Notebook,此时执行pyodbc.drivers()即可正常识别到ODBC驱动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:09:02