You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解决SQL Server 2017中Python脚本无法运行的配置问题?

解决SQL Server 2017中无法运行Python脚本的问题

首先得说,你遇到的这个问题其实挺常见的——明明执行了启用外部脚本的配置命令,结果运行值还是0,导致Python脚本执行失败,甚至直接改系统表还被拦了。咱们一步步来拆解解决:

1. 务必重启SQL Server及Launchpad服务

很多人容易忽略:执行RECONFIGURE WITH OVERRIDE后,必须重启SQL Server实例服务和SQL Server Launchpad服务,配置才能真正生效。具体操作:

  • 按下Win+R,输入services.msc打开服务管理器。
  • 找到你的SQL Server实例服务(比如默认的MSSQLSERVER),右键选择「重启」。
  • 再找到SQL Server Launchpad服务,同样右键重启。
  • 重启完成后,执行exec sp_configure 'external scripts enabled',检查run_value是否变为1。

2. 重新安装/修复机器学习服务(Python组件)

从你描述的更新时Python安装失败来看,很大概率是当初安装SQL Server时没勾选Python组件,或者组件已经损坏。咱们重新添加这个功能:

  • 打开SQL Server 2017安装中心,选择「安装」→「向现有SQL Server实例添加功能」。
  • 跟着向导选择你的目标实例,在「功能选择」页面勾选「机器学习服务(In-Database)」,然后勾选「Python」选项。
  • 安装过程中确保网络稳定(组件需要在线下载),如果之前下载失败,检查防火墙是否拦截了微软的下载地址,或者换个更稳定的网络环境。
  • 安装完成后,再次执行以下命令:
    EXEC sp_configure 'external scripts enabled', 1
    RECONFIGURE WITH OVERRIDE
    
    然后重复第一步,重启SQL Server和Launchpad服务。

3. 绝对不要手动修改系统表

你尝试的update sys.configurations命令报错是正常的——微软明确禁止直接修改系统目录,这种操作不仅不被支持,还可能导致数据库损坏。所有配置变更都必须通过sp_configure和官方支持的方式来完成。

4. 升级SQL Server到最新累积更新(CU)

你的SQL Server 2017是CU14,确实比较老旧了,很多机器学习服务的Bug在后续CU中已经修复。建议升级到最新的CU,但注意:

  • 升级前先确保机器学习服务已经正确安装(或者先卸载现有机器学习服务,升级SQL Server后再重新安装)。
  • 升级过程中同样要保证网络通畅,避免组件下载失败。

5. 验证配置是否生效

完成以上步骤后,执行一个简单的测试脚本验证:

exec sp_execute_external_script 
@language =N'Python', 
@script=N'OutputDataSet = InputDataSet', 
@input_data_1 = N'SELECT 1 as col'

如果能正常返回结果(一行col=1的数据),说明配置已经成功了。

额外注意事项

  • 你的Windows 10版本是17134(2018年春季更新),建议升级到最新的Win10版本(比如22H2),可以解决不少兼容性问题。
  • 确保SQL Server服务账户和Launchpad服务账户(默认是NT Service\MSSQLLaunchpad)有足够的权限访问Python安装目录(默认路径是C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES)。

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

火山引擎 最新活动