如何在SQL Server机器学习服务中执行Python .py脚本文件?
SQL ML Services 引用外部Python文件实现方案
核心思路是通过SQL读取本地.py文件的文本内容,直接传入存储过程的@script参数,全程无需在SQL脚本中编写Python逻辑,满足后续独立维护Python代码的需求。
前置配置检查
- 确认SQL Server服务运行账户拥有
.py文件存储路径的读取权限 - 确认已开启外部脚本执行功能,未开启的话执行以下命令后重启SQL服务即可:
sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE;
完整实现代码
DECLARE @pythonScript NVARCHAR(MAX); -- 读取外部Python文件内容,替换为你实际的.py文件绝对路径 SELECT @pythonScript = BulkColumn FROM OPENROWSET(BULK N'C:\py_scripts\your_business_logic.py', SINGLE_BLOB) AS file_content; -- 调用ML Services执行Python代码 EXEC sp_execute_external_script @language = N'Python', @script = @pythonScript -- 如有需要可以额外追加@input_data_1、@params等传参配置 ;
注意事项
- 推荐使用绝对路径指定
.py文件位置,避免相对路径读取失败 - 若Python代码包含中文,需将
.py文件保存为UTF-8编码,防止读取后乱码 - 生产环境需严格管控
.py文件的修改权限,避免恶意代码被执行
内容的提问来源于stack exchange,提问作者Masoud
相关产品推荐
相关产品推荐

