使用 Python 工具在 SQL Server 上安装包
适用于: 仅限 SQL Server 2017 (14.x)
本文介绍了如何使用标准 Python 工具在 SQL Server 机器学习服务的实例上安装新的 Python 包。 通常情况下,安装新包的流程与在标准 Python 环境中安装类似。 不过,如果服务器未连接到 Internet,还必须执行其他一些步骤。
有关包位置和安装路径的详细信息,请参阅获取 Python 包信息。
先决条件
- 必须使用 Python 语言选项安装 SQL Server 机器学习服务。
其他注意事项
包必须与 Python 3.5 兼容并在 Windows 上运行。
Python 包库位于 SQL Server 实例的“程序文件”文件夹中,默认情况下,在此文件夹中安装需要管理员权限。 有关详细信息,请参阅包库位置。
根据每个实例进行包安装。 如果有多个机器学习服务实例,则必须将包添加到每个实例中。
数据库服务器经常被锁定。 在许多情况下,Internet 访问完全受阻。 对于有一长串依赖项列表的包,需要提前标识这些依赖项,并准备好手动安装每个依赖项。
在添加包之前,请考虑该包是否适合 SQL Server 环境。
建议将数据库内的 Python 用于那些受益于与数据库引擎紧密集成的任务(如机器学习),而不是简单地查询数据库的任务。
如果添加的包给服务器带来了太多的计算压力,那么性能将受到影响。
在强化的 SQL Server 环境中,可能希望避免使用以下包:
- 需要网络访问权限的包
- 需要提升的文件系统访问权限的包
- 用于 Web 开发或不受益于在 SQL Server 内部运行的其他任务的包
在 SQL Server 上添加 Python 包
若要让安装的新 Python 包可以在 SQL Server 上的脚本中使用,请在机器学习服务的实例中安装包。 如果有多个机器学习服务实例,则必须将包添加到每个实例中。
下面各示例中安装的包是 CNTK,这是 Microsoft 提供的深度学习框架,可支持自定义、定型和共享不同类型的神经网络。
下载 Python 包以供脱机安装
若要在未连接到 Internet 的服务器上安装 Python 包,必须先从连接到 Internet 的计算机下载 WHL 文件,再将此文件复制到服务器。
例如,在已连接到 Internet 的计算机上,可以下载一个用于 CNTK 的 .whl
文件,然后将该文件复制到 SQL Server 计算机上的本地文件夹中。 有关可用于 CNTK 的 .whl
文件列表,请参阅从 Wheel 文件安装 CNTK。
重要
请务必获取 Windows 版本的包。 如果文件以 .gz 结尾,表明版本可能不正确。
若要详细了解如何下载适用于多个平台和多个版本 Python 的 CNTK 框架,请参阅在计算机上安装 CNTK。
查找 Python 库
查找 SQL Server 使用的默认 Python 库位置。 如果已安装多个实例,请查找要向其中添加包的实例的 PYTHON_SERVICES
文件夹。
例如,如果机器学习服务已使用默认设置进行安装,且默认实例已启用机器学习,那么路径为:
cd "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES"
提示
为了方便将来进行调试和测试,不妨设置实例库专用的 Python 环境。
使用 pip 安装包
使用 pip 安装程序来安装新包。 可以在 PYTHON_SERVICES
文件夹的 Scripts
子文件夹中找到 pip.exe
。 由于 SQL Server 安装程序没有将 Scripts
子文件夹添加到系统路径,因此你必须指定完整路径,也可以将 Scripts 文件夹添加到 Windows 中的 PATH 变量。
注意
若要结合使用 Visual Studio 2017 或 Visual Studio 2015 与 Python 扩展,可以从“Python 环境”窗口中运行 pip install
。 单击“包”,然后在文本框中输入要安装的包的名称或位置。 无需键入 pip install
;系统自动为你填充它。
如果计算机连接到 Internet,请提供包的名称:
scripts\pip.exe install cntk
也可以指定包含特定包和版本的 URL,例如:
scripts\pip.exe install https://cntk.ai/PythonWheel/CPU-Only/cntk-2.1-cp35-cp35m-win_amd64.whl
如果计算机未连接到 Internet,请指定先前下载的 WHL 文件。 例如:
scripts\pip.exe install C:\Downloads\cntk-2.1-cp35-cp35m-win_amd64.whl
系统可能会提示你提升权限来完成安装。 随着安装的进行,可以在命令提示符窗口中看到状态消息。
将包或其函数作为脚本的一部分加载
安装完成后,可以立即开始在 SQL Server 上的 Python 脚本中使用包。
若要在脚本中使用包中的函数,请在脚本的初始行中插入标准 import <package_name>
语句:
EXECUTE sp_execute_external_script
@language = N'Python',
@script = N'
import cntk
# Python statements ...
'