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

Ubuntu 20.04下SQL Server 2022运行Python外部脚本报错排查咨询

排查SQL Server 2022 Python外部脚本执行错误(Msg 39012)的要点

针对Ubuntu 20.04系统下SQL Server 2022执行Python外部脚本出现的Msg 39012错误,需按以下几点逐一排查:

  • 确认SQL Server机器学习服务组件已安装
    SQL Server 2022在Linux上无法直接使用系统Python,需单独安装扩展性组件。执行以下命令检查组件是否存在:

    dpkg -l | grep mssql-server-extensibility
    

    若未安装,通过apt安装对应组件:

    sudo apt-get update
    sudo apt-get install mssql-server-extensibility
    
  • 启用外部脚本执行权限
    登录SQL Server,执行以下命令开启外部脚本支持:

    sp_configure 'external scripts enabled', 1;
    RECONFIGURE WITH OVERRIDE;
    

    执行完成后重启SQL Server服务:

    sudo systemctl restart mssql-server
    
  • 验证mssql-launchpad服务状态
    外部脚本依赖mssql-launchpad服务,检查服务是否正常运行:

    sudo systemctl status mssql-launchpad
    

    若未启动,手动启动并设置开机自启:

    sudo systemctl start mssql-launchpad
    sudo systemctl enable mssql-launchpad
    
  • 检查SQL Server关联的Python环境
    SQL Server会使用自带的Python环境而非系统默认版本,需确认其版本兼容性及路径:
    尝试执行最简Python脚本验证环境(若能执行):

    EXEC sp_execute_external_script 
    @language = N'Python', 
    @script = N'
    import sys
    print("Python版本:", sys.version)
    print("Python路径:", sys.executable)
    ';
    

    若无法执行,手动检查默认路径/opt/mssql/mlservices/python/bin/下的Python版本是否为3.8(SQL Server 2022支持版本),且mssql用户对该路径有读写权限:

    sudo chown -R mssql:mssql /opt/mssql/mlservices/
    
  • 验证核心Python依赖包
    SQL Server执行脚本依赖revoscalepy等核心包,进入SQL Server自带的Python环境验证:

    /opt/mssql/mlservices/python/bin/python3 -c "import revoscalepy; print('revoscalepy加载正常')"
    

    若报错,说明包缺失或损坏,需重新安装机器学习服务组件。

  • 检查文件系统与临时目录权限
    确保mssql用户对临时目录/tmp有读写权限,避免脚本执行时无法创建临时文件:

    sudo chmod 1777 /tmp
    
  • 查看详细日志定位问题
    检查SQL Server和Launchpad的日志文件,获取更具体的错误原因:

    • SQL Server错误日志:/var/opt/mssql/log/errorlog
    • Launchpad日志:/var/opt/mssql/log/launchpadd.log

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 19:42:43