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

Machine Learning Services 2017 - Unable to launch the ( python ) runtime. ErrorCode 0x80070057: 87(The parameter is incorrect.)

我们将 SQL 服务器 2017 与机器学习服务 (MLS) 从 运行ning R 3.3.3 和 Python 3.5.2 更改为 R 3.5.2 和Python3.7.1.

SQL 2017 CU22 安装更高值的 R & Python,所以你必须 运行 一个 exe 告诉 SQL 使用更高的 R & Python 个通过 CU22 安装在磁盘上的版本。

成功完成后,当我们重新启动时 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, Level 16, 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.< instance >\MSSQL\Log\ExtensibilityLog 在 pythonlauncher.lor 或 rlauncher.log 文件中,你可以看到与此类似的一行:

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

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

对我们有用的修复:

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

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

** 确保创建所有 21 个目录 < SQL_instance >00 到 < SQL_instance >20(含)- 否则一次只能有一个用户运行 R / Python 盒子上的代码。 **

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

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

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

(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 某人....