【问题标题】:How to add private packages in azure ml environment?如何在 azure ml 环境中添加私有包?
【发布时间】:2021-10-08 11:57:22
【问题描述】:

我有 python 脚本 (train_pipeline.py),它创建并运行一个 azure ml 管道。它使用 environment.yml 创建 conda 环境。除了在 yml 文件中通过其相对路径引用的一个私有库(utils)之外,这是可行的。当我在本地创建 conda 环境时,一切都按预期工作。但是,当 azure ml 创建环境时,它无法找到 utils 文件夹。

如何将私有包包含到 azure ml 环境中?

目录结构:

| azure_pipelines
|--- train_pipeline.py
| projects
|--- project_1
|---|--- script.py
|---|--- environment.yml
| utils
|--- database_utils
|---|---__init__.py
|---|---connection.py
|--- setup.py

environment.yml 内容:

name: env_name
channels:
  - defaults
dependencies:
  - python=3.8
  - pyodbc
  - pandas
  - pip:
    - azureml-core
    - ../../utils
prefix: /Users/username/opt/anaconda3/envs/env_name

train_pipeline.py:

...
environment = Environment.from_conda_specification('env_name', '../projects/project_1/environment.yml')
...

【问题讨论】:

  • 相对路径是否可能使用当前工作目录而不是相对于 YAML 文件?

标签: pip yaml azure-pipelines conda azureml


【解决方案1】:

首先,您需要为您的私有包创建一个 .whl 文件。您的“utils”目录中已经有一个“setup.py”文件,因此假设它已正确设置(如果您不确定,可以查看here),在终端中打开“utils”目录并运行以下指令:

python setup.py bdist_wheel --universal

这将在“utils”下的新“dist”目录中创建轮子。您现在可以将其添加到您的环境中:

whl_url = environment.add_private_pip_wheel(
    workspace = <Workspace object>,
    file_path = "../utils/dist/<wheel filename>"
)
environment.python.conda_dependencies.add_pip_package(whl_url)

docs 很好地解释了最后一部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    相关资源
    最近更新 更多