更改默认 R 或 Python 语言运行时版本

适用于:SQL Server 2016 (13.x) SQL Server 2017 (14.x)

本文介绍如何使用 Python 和 R 更改 SQL Server 2016 R ServicesSQL Server 机器学习服务中使用的 R 或 Python 的默认版本。

下面列出了不同的 SQL Server 版本中包含的 R 和 Python 运行时版本。

SQL Server 版本 服务 累计更新 R 运行时版本 Python 运行时版本
SQL Server 2016 (13.x) R 服务 RTM - SP2 CU13 3.2.2 不可用
SQL Server 2016 (13.x) R 服务 SP2 CU14 及更高版本 3.2.2 和 3.5.2 不可用
SQL Server 2017 (14.x) 机器学习服务 RTM - CU21 3.3.3 3.5.2
SQL Server 2017 (14.x) 机器学习服务 CU22 及更高版本 3.3.3 和 3.5.2 3.5.2 和 3.7.2

必备知识

需要安装累积更新 (CU) 才能更改默认 R 或 Python 语言运行时版本:

  • SQL Server 2016: Services Pack (SP) 2 累积更新 (CU) 14 或更高版本
  • SQL Server 2017:累积更新 (CU) 22 或更高版本

若要下载最新的累积更新,请参阅 Microsoft SQL Server的最新更新

注意

如果在全新安装的 SQL Server 中集成累积更新,则只会安装最新版本的 R 和 Python 运行环境。

更改 R 运行时版本

如果已安装上述 SQL Server 2016 或 2017 累积更新之一,则 SQL Server 实例中可能有多个版本的 R。 每个版本都包含在名称 R_SERVICES.<为主要>的实例文件夹的子文件夹中。<minor> (原始安装中的文件夹可能没有附加到文件夹名称的版本号)。

如果安装包含 R 3.5 的 CU,则新的 R_SERVICES 文件夹为:

  • SQL Server 2016:C:\Program Files\Microsoft SQL Server\MSSQL13.<INSTANCE_NAME>\R_SERVICES.3.5
  • SQL Server 2017:C:\Program Files\Microsoft SQL Server\MSSQL14.<INSTANCE_NAME>\R_SERVICES.3.5

每个 SQL Server 实例使用其中一个版本作为 R 的默认版本。可以使用命令行实用工具更改默认版本 RegisterRext.exe 。 该实用工具位于每个 SQL Server 实例的 R 文件夹下:

<SQL Server 实例路径>\R_SERVICES.n.n\library\RevoScaleR\rxLibs\x64\RegisterRext.exe

注意

本文中所述的功能仅适用于 SQL OU 中包含的副本 RegisterRext.exe 。 请勿使用原始 SQL Server 安装附带的副本。

若要更改 R 运行时版本,请将以下命令行参数传递给 RegisterRext.exe

  • /configure - 必需,指定你配置的是默认 R 版本。

  • /instance: <实例名称> - 可选,要配置的实例。 如果未指定,则将配置默认实例。

  • /rhome: <R_SERVICES[n.n] 文件夹的路径> - 可选,要设置为默认 R 版本的运行时版本文件夹的路径。

    如果未指定 /rhome,则配置的路径是包含 RegisterRext.exe 的路径。

示例

下面是有关如何在 SQL Server 2016 和 2017 中更改 R 运行时版本的示例。

更改 SQL Server 2016 中的 R 运行时版本

例如,若要将 R 3.5 配置为 SQL Server 2016 上实例 MSSQLSERVER01 的 R 的默认版本,请执行以下操作:

cd "C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER01\R_SERVICES.3.5\library\RevoScaleR\rxLibs\x64"

.\RegisterRext.exe /configure /rhome:"C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER01\R_SERVICES.3.5" /instance:MSSQLSERVER01

更改 SQL Server 2017 中的 R 运行时版本

例如,若要将 R 3.5 配置为 SQL Server 2017 上实例 MSSQLSERVER01 的 R 的默认版本,请执行以下操作:

cd "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER01\R_SERVICES.3.5\library\RevoScaleR\rxLibs\x64"

.\RegisterRext.exe /configure /rhome:"C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER01\R_SERVICES.3.5" /instance:MSSQLSERVER01

在这些示例中,无需包含 /rhome 自变量,因为要指定所在的 RegisterRext.exe 同一文件夹。

更改 Python 运行时版本

如果安装了 SQL Server 2017 (14.x) CU22 或更高版本,则 SQL Server 实例中可能有多个版本的 Python。 每个版本都包含在名称 PYTHON_SERVICES.<为主要>的实例文件夹的子文件夹中。<minor> (原始安装中的文件夹可能没有附加到文件夹名称的版本号)。

例如,如果安装包含 Python 3.7 的 CU,则会创建新的 PYTHON_SERVICES 文件夹:

C:\Program Files\Microsoft SQL Server\MSSQL14.<INSTANCE_NAME>\PYTHON_SERVICES.3.7

每个 SQL Server 实例都使用其中一个版本作为 Python 的默认版本。 可以使用命令行实用工具更改默认版本 RegisterRext.exe 。 该实用工具位于每个 SQL Server 实例中的 Python 文件夹下:

<SQL Server 实例路径>\PYTHON_SERVICES.n.n\Lib\site-packages\revoscalepy\rxLibs\RegisterRExt.exe

注意

本文中所述的功能仅适用于 SQL CU 中包含的 RegisterRext.exe 副本。 请勿使用原始 SQL Server 安装附带的副本。

若要更改 Python 运行时版本,请将以下命令行参数传递给 RegisterRext.exe

  • /configure - 必需,指定你配置的是默认 Python 版本。

  • /python - 指定你配置的是默认 Python 版本。 如果指定 /pythonhome,则为可选。

  • /instance: <实例名称> - 可选,要配置的实例。 如果未指定,则将配置默认实例。

  • /pythonhome: <PYTHON_SERVICES[n.n] 文件夹的路径> - 可选,要设置为默认 Python 版本的运行时版本文件夹的路径。

    如果未指定 /pythonhome,则配置的路径是 RegisterRext.exe 所在的路径。

示例

例如,若要将 Python 3.7 配置为 SQL Server 2017 上实例 MSSQLSERVER01 的 Python 的默认版本,请执行以下操作:

cd "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER01\PYTHON_SERVICES.3.7\Lib\site-packages\revoscalepy\rxLibs"

.\RegisterRext.exe /configure /pythonhome:"C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES.3.7" /instance:MSSQLSERVER01

在此示例中,无需包含 /pythonhome 自变量,因为要指定所在的 RegisterRext.exe 同一文件夹。

删除运行时版本

若要删除 R 或 Python 的某个版本,请使用RegisterRext.exe命令行参数,以及前面所述的相同/cleanup/rhome/pythonhome/instance参数。

例如,若要从实例 MSSQLSERVER01 中删除 R 3.2 文件夹,请执行以下操作:

.\RegisterRext.exe /cleanup /rhome:"C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER01\R_SERVICES" /instance:MSSQLSERVER01

例如,若要从实例 MSSQLSERVER01 中删除 Python 3.7 文件夹,请执行以下操作:

.\RegisterRExt.exe /cleanup /python /pythonhome:"C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER01\PYTHON_SERVICES.3.7" /instance:MSSQLSERVER01

RegisterRext.exe 请确认指定的 R 运行时清理操作:

是否确定要永久删除给定运行时以及该运行时上安装的所有包? [是(Y)/否(N)/默认值(是)]:

若要确认,请回复 Y 或按 Enter。 此外,也可以通过在 /y 选项中传入 /Yes/cleanup 来跳过此提示。

注意

仅当版本未配置为默认值且当前不用于运行 RegisterRext.exe时,才能删除该版本。