机器学习服务 2017 - 无法启动 (python) 运行时 ErrorCode 0x80070057: 87参数不正确

问题描述

我们将带有机器学习服务 (MLS) 的 sql Server 2017 从运行 R 3.3.3 和 Python 3.5.2 更改为 R 3.5.2 和 Python 3.7.1。

sql 2017 CU22 安装了更高的 R & Python 值,因此您必须运行一个 exe 来告诉 sql 使用通过 CU22 安装在磁盘上的更高的 R & Python 版本。

成功完成后,当我们重新启动Python时出现错误

Msg 39021,Level 16,State 1,Line 0
Unable to launch runtime for 'Python' script. Please check the configuration of the 'Python' runtime.
Msg 39019,State 2,Line 0
An external script error occurred: 
Unable to launch the runtime. ErrorCode 0x80070057: 87(The parameter is incorrect.).

这是以下解决方案的问题描述和占位符。

有关成功的解决方案,请参见下文。

解决方法

如果你往里面看

E:\Program Files\Microsoft SQL Server\MSSQL14.\MSSQL\Log\ExtensibilityLog 在 pythonlauncher.lor 或 rlauncher.log 文件中,您可能会看到与此类似的行:

 [0000293C][00002B9C][Error] Session creation failed with: F

我认为这是 SQL 2017 MLS 尝试写入磁盘。

对我们有用的修复:

(1) 创建一个新目录,例如D:\MLSTEMP

(2) 创建子目录 D:\MLSTEMP\ 00 和 D:\MLSTEMP\ 01

(3) 确保本地 MSSQLLaunchpad 服务、Everyone 组和 SQL 服务帐户对 D:\MLSTEMP 和子目录具有完全访问权限。

注意: 括号不是目录名称的一部分

注意:启动板服务名称是:NTService\MSSQLLaunchpad$

(4) 去你的

D:\Program Files\Microsoft SQL Server\MSSQL14.SQL001\MSSQL\Binn\pythonlauncher.config

D:\Program Files\Microsoft SQL Server\MSSQL14.SQL001\MSSQL\Binn\rlauncher.config 文件,

并将每个文件中的 WORKING_DIRECTORY 设置更改为 WORKING_DIRECTORY=D:\MLSTEMP

(5) 重启盒子上的 MSSQLLaunchpad 服务。

有趣的是,使用的是 ****01 目录,而不是 ****00 目录。

要在 rlauncher 或 pythonlauncher 日志文件中获取更多详细信息,请在 rlauncher 或 pythonlauncher.config 文件中,将 trace_level 设置更改为 4,即 TRACE_LEVEL=4。它通常设置为 1。

它现在应该可以工作了。您可能需要玩一些权限。

HTH 某人....