SQL Server 2018机器学习服务安装XGBoost报通用网络错误如何解决
MS SQL 2018 安装XGBoost触发通用网络错误排查方案
问题背景
使用sqlmlutils为MS SQL 2018安装Python依赖包时,其余包均可正常安装,仅安装XGBoost时触发报错,波兰语原文为「Błąd ogólny sieci. Zajrzyj do dokumentacji sieci」,对应含义为通用网络错误,请查阅网络文档,使用的默认安装代码如下:
import sqlmlutils connection = sqlmlutils.ConnectionInfo(server="name,port", database="dbname", uid="accname", pwd="accpwd") sqlmlutils.SQLPackageManager(connection).install("XGBoost")
可行排查解决思路
- 替换PyPI镜像源避免超时
XGBoost预编译包体积远大于普通Python包,默认公网源下载速度慢,很容易触发SQL Server外部脚本的网络超时阈值,可在安装时指定国内镜像源,示例代码如下:
sqlmlutils.SQLPackageManager(connection).install("XGBoost", install_args="--index-url https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn")
- 验证机器学习服务账户网络权限
确认SQL Server Launchpad服务的运行账户(默认为NT Service\MSSQLLaunchpad)是否具备出站访问公网的权限,部分企业安全策略会对数据库相关服务账户做网络隔离,大体积包传输时更容易被防火墙主动切断连接。 - 离线安装绕过网络限制
如果网络限制无法解除,可采用本地下载后离线安装的方式:
- 在与SQL Server内置Python版本完全一致的本地环境执行命令,下载XGBoost及依赖包的wheel文件:
pip download xgboost -d ./xgboost_pkg - 将下载好的包文件夹上传至SQL Server可访问路径,执行本地安装:
sqlmlutils.SQLPackageManager(connection).install("./xgboost_pkg/xgboost-<对应版本号>.whl")
- 适配版本兼容性
确认SQL Server 2018内置Python版本支持的XGBoost版本范围,可指定安装兼容的低版本避免pip自动检索版本时产生过多网络请求,示例:install("xgboost==1.6.2") - 调整外部资源治理配置
检查SQL Server外部脚本资源池的超时、带宽限制规则,XGBoost下载耗时较长时可能被资源治理规则主动断开,可临时调大相关阈值后重试安装。
内容的提问来源于stack exchange,提问作者yngwie_19
相关产品推荐
相关产品推荐

