適用於: SQL Server 2016 (13.x)
SQL Server 2017 (14.x)
本文說明如何變更 SQL Server 2016 R Services 或 SQL Server Machine Learning Services 中使用的 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.<major>.<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 CUs 中包含的 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.<為主要>.<次要>(原始安裝中的資料夾名稱可能沒有附加版本號碼)。
例如,如果您安裝了包含 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時,您才能移除該版本。