Databricks Apps使用pyodbc时libodbc.so.2缺失报错的解决咨询
问题
在Databricks Apps中使用pyodbc库时触发错误:libodbc.so.2: cannot open shared object file: No such file or directory。已通过初始化脚本在集群中安装相关依赖(脚本内容如下),该方案在Notebooks中可解决问题,但在Apps中无效:
sudo apt-get update sudo apt-get install -y libodbc2 sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
解决方案
手动指定ODBC库路径
Databricks Apps的运行上下文可能未继承集群初始化脚本的环境变量配置,在使用pyodbc前添加以下代码,强制指定库路径:import os os.environ['LD_LIBRARY_PATH'] = '/usr/lib/x86_64-linux-gnu:' + os.environ.get('LD_LIBRARY_PATH', '')修改初始化脚本以全局配置环境变量
在原有初始化脚本末尾添加以下命令,将ODBC库路径写入全局配置文件,确保所有进程(包括Apps)启动时能加载该路径:echo 'export LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"' >> /etc/profile.d/odbc.sh sudo chmod +x /etc/profile.d/odbc.sh验证库安装路径
在集群Notebook中执行以下命令,确认libodbc.so.2的实际位置:find / -name libodbc.so.2 2>/dev/null如果返回的路径与上述配置中的
/usr/lib/x86_64-linux-gnu不符,需对应调整环境变量中的路径值。重启集群与Apps
修改初始化脚本后必须重启整个集群,之后重新部署或启动Databricks Apps,确保所有配置生效。
内容的提问来源于stack exchange,提问作者Obirieni Simeo
相关产品推荐
相关产品推荐

