You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Machine Learning作业中安装并使用自定义Python包?

解决Azure ML作业中自定义Python包的安装与导入问题

1. 规范自定义包的目录结构

你的包必须符合Python包的标准结构,否则无法被正确识别:

mlops_i4t/
    __init__.py
    preprocessing/
        __init__.py
        data_utils.py  # 存放get_final_dataframe函数
    machine_learning/
        __init__.py
        model_utils.py
setup.py  # 或pyproject.toml
  • 每个子目录都需要空的__init__.py文件,让Python将其识别为包组件
  • 编写正确的setup.py配置包信息,示例:
from setuptools import setup, find_packages

setup(
    name="mlops_i4t",
    version="0.1.0",
    packages=find_packages(),
)

2. 在Azure ML作业中安装自定义包

方法一:通过conda配置文件指定安装

在作业的YAML配置文件(如job.yml)中,关联包含包安装命令的conda文件:

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: ./
command: >-
  python mlops_i4t/machine_learning/model_utils.py
environment:
  conda_file: ./conda.yml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04

对应的conda.yml文件添加pip安装本地包的指令:

channels:
  - conda-forge
dependencies:
  - python=3.8
  - pip:
    - .  # 安装当前目录下的自定义包

方法二:在作业运行命令中直接执行安装

如果不需要复杂的conda环境,可以在作业命令里先执行pip安装:

command: >-
  pip install . && python mlops_i4t/machine_learning/model_utils.py

注:这种方式每次作业运行都会重新安装包,适合快速测试场景。

3. 验证包安装状态

可以在作业命令中加入验证步骤,确认包已成功安装:

command: >-
  pip install . && pip list | grep mlops_i4t && python mlops_i4t/machine_learning/model_utils.py

如果输出中能看到mlops_i4t包的信息,说明安装成功。

4. 检查作业的代码目录配置

确保Azure ML作业的code字段指向的目录包含自定义包的根目录和setup.py/pyproject.toml文件。比如代码都存放在./src下,就需要将code设置为./src,保证作业能访问到包的安装配置文件。

5. 统一使用绝对导入

避免在代码中使用相对导入(如from ..preprocessing import ...),统一使用绝对导入格式:from mlops_i4t.preprocessing import get_final_dataframe,同时确保包已被安装到环境的site-packages目录中。

内容的提问来源于stack exchange,提问作者Niels Hoogeveen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:01:35