Python wheel 文件是打包和分发运行 Python 应用程序所需文件的标准方式。 使用 Python 滚轮任务,可以确保在作业中快速可靠地安装 Python 代码。 本文提供了一个示例,用于演示如何创建 Python wheel 文件以及如何创建运行 Python wheel 文件中打包的应用程序的作业。 在此示例中,你将:
- 创建用于定义示例应用程序的 Python 文件。
- 将示例文件捆绑到 Python wheel 文件中。
- 创建一个作业来运行 Python wheel 文件。
- 运行作业并查看结果。
开始之前
若要完成此示例,需要准备好以下各项:
Python3
Python
wheel
和setuptool
包。 可以使用pip
安装这些包。 例如,可以运行以下命令来安装这些包:pip install wheel setuptools
步骤 1:为示例创建本地目录
创建一个本地目录用于保存示例代码和生成的项目,例如 databricks_wheel_test
。
步骤 2:创建示例 Python 脚本
以下 Python 示例是一个简单的脚本,它将读取输入参数并输出这些参数。 复制此脚本并将其保存到在上一步骤中创建的目录中名为 my_test_code/__main__.py
的路径。
"""
The entry point of the Python Wheel
"""
import sys
def main():
# This method will print the provided arguments
print('Hello from my func')
print('Got arguments:')
print(sys.argv)
if __name__ == '__main__':
main()
步骤 3:为包创建元数据文件
以下文件包含描述包的元数据。 将此文件保存到在步骤 1 中创建的目录中名为 my_test_code/__init__.py
的路径。
__version__ = "0.0.1"
__author__ = "Databricks"
步骤 4:创建 Python wheel 文件
将 Python 项目转换为 Python wheel 文件需要指定包元数据,例如包名称和入口点。 以下脚本定义此元数据。
注意
此脚本中定义的 entry_points
用于在 Azure Databricks 工作流中运行包。 在 entry_points
的每个值中,=
前面的值(在本示例中为 run
)是入口点的名称,它用于配置 Python wheel 任务。
将此脚本保存到在步骤 1 创建的目录的根目录中名为
setup.py
的文件中:from setuptools import setup, find_packages import my_test_code setup( name='my_test_package', version=my_test_code.__version__, author=my_test_code.__author__, url='https://databricks.com', author_email='john.doe@databricks.com', description='my test wheel', packages=find_packages(include=['my_test_code']), entry_points={ 'group_1': 'run=my_test_code.__main__:main' }, install_requires=[ 'setuptools' ] )
切换到在步骤 1 中创建的目录并运行以下命令,以将代码打包到 Python wheel 分发中:
python3 setup.py bdist_wheel
此命令会创建 Python wheel 文件并将其保存到你的目录中的 dist/my_test_package-0.0.1-py3.none-any.whl
文件中。
步骤 5。 创建任务以运行 Python wheel 文件
在工作区中,单击
,然后在边栏中选择作业和管道。
单击创建,然后选择作业。
“ 任务 ”选项卡显示空任务窗格。
注意
如果 Lakeflow 作业 UI 为 ON,请单击 Python 滚轮 磁贴以配置第一个任务。 如果 Python 滚轮 磁贴不可用,请单击“ 添加其他任务类型 ”并搜索 Python 滚轮。
(可选)将默认为
New Job <date-time>
作业名称的作业名称替换为作业名称。在“任务名称”中,输入任务的名称。
如有必要,请从“类型”下拉菜单中选择 Python 滚轮。
在“包名称”中输入 。 “包名称”值是要导入的 Python 包的名称。 在此示例中,包名称是分配给
name
中的setup.py
参数的值。在“入口点”中输入
run
。 入口点是在entry_points
脚本的setup.py
集合中指定的值之一。 在此示例中,run
是定义的唯一一个入口点。在“计算”中,选择一个现有作业群集或添加新作业群集。
指定 Python 滚轮文件:
- 在“ 环境和库 ”下拉列表中,单击
在 “默认”旁编辑它。 或者,单击“ 添加新环境 ”以配置新环境。
- 在 “配置环境 ”对话框中,单击“ 添加依赖项”。
- 单击
,打开文件浏览器。 将步骤 4 中创建的 wheel 文件拖放到 “选择依赖项 ”对话框中。
- 单击“确认”。
- 在“ 环境和库 ”下拉列表中,单击
在“参数”中,选择“位置参数”或“关键字参数”以输入每个参数的键和值。 位置参数和关键字参数都将作为命令行参数传递给 Python wheel 任务。
- 若要输入位置参数,请以 JSON 格式的字符串数组形式输入参数,例如:
["first argument","first value","second argument","second value"]
。 - 若要输入关键字参数,请单击“+ 添加”并输入键和值。 再次单击“+ 添加”以输入更多参数。
- 若要输入位置参数,请以 JSON 格式的字符串数组形式输入参数,例如:
单击“创建任务”。
步骤 6:运行作业并查看作业运行详细信息
单击 以运行工作流。 若要查看运行的详细信息,请单击“运行”选项卡,然后单击作业运行视图中运行的“开始时间”列中的链接。
运行完成后,输出会显示在“输出”面板中,其中包括传递给任务的参数。
后续步骤
若要详细了解如何创建和运行作业,请参阅 Lakeflow 作业。