ClearML-Agent安装自定义.whl包及运行含自定义包代码的方法
在ClearML默认队列通过Agent运行含自定义Python包的代码
要让ClearML Agent运行依赖自定义包的代码,核心是确保Agent能正确获取并安装这些依赖,步骤如下:
- 步骤1:配置ClearML任务的依赖声明
在代码中通过Task.init()初始化任务时,显式声明自定义包的来源。如果是私有whl包,可通过Agent可访问的绝对路径或内部存储地址指定;如果是已上传到PyPI的自定义包,直接写包名即可。
示例代码:from clearml import Task task = Task.init( project_name="MyProject", task_name="CustomPackageTask", requirements=["helloworld @ file:///path/to/helloworld-0.1.0-py3-none-any.whl"] ) # 业务代码示例 import helloworld helloworld.greet() - 步骤2:将任务提交到默认队列
运行代码后,任务会同步到ClearML Web UI。在UI中找到该任务,点击「Enqueue」并选择「default」队列。 - 步骤3:启动Agent监听默认队列
在Agent所在机器执行以下命令,启动Agent并绑定默认队列:
Agent会自动拉取任务、创建隔离虚拟环境、安装所有声明的依赖(包括自定义包),随后执行代码。clearml-agent daemon --queue default
自定义.whl包(如helloworld)的通用安装流程
普通Python环境安装自定义whl包的流程:
- 步骤1:获取.whl文件
从源码生成(如通过python setup.py bdist_wheel或poetry build)或获取已编译好的helloworld-xxx-py3-none-any.whl文件。 - 步骤2:用pip安装
切换到whl文件所在目录,执行:pip install helloworld-xxx-py3-none-any.whl - 步骤3:验证安装
进入Python交互环境测试:import helloworld print(helloworld.__version__)
在ClearML-Agent内安装自定义.whl包的步骤
除了在任务代码中声明依赖,还有三种常用方式:
方式1:通过Web UI修改任务依赖
- 打开ClearML Web UI,找到目标任务,进入「Configuration」标签页。
- 在「Requirements」区域点击「Add Requirement」,输入
helloworld @ file:///path/to/whl(需确保Agent能访问该路径),或上传whl文件到ClearML存储后使用内部URL。 - 保存修改后重新将任务加入队列,Agent会自动安装该依赖。
方式2:启动Agent时全局指定额外依赖
如果需要让Agent处理的所有任务都安装该自定义包,启动Agent时添加--extra-package参数:
clearml-agent daemon --queue default --extra-package file:///path/to/helloworld-xxx-py3-none-any.whl
该方式会让Agent在每个任务的虚拟环境中都安装此包。
方式3:使用自定义requirements.txt文件
- 创建
requirements.txt,添加一行:helloworld @ file:///path/to/helloworld-xxx-py3-none-any.whl - 任务初始化时指定该文件:
Agent拉取任务时会读取该文件并安装所有依赖。task = Task.init( project_name="MyProject", task_name="CustomPackageTask", requirements_file="./requirements.txt" )
内容的提问来源于stack exchange,提问作者Ravi Kiran G
相关产品推荐
相关产品推荐

