创建azureml环境时如何指定pip extra-index-url?

How to specify pip extra-index-url when creating an azureml environment?

当 AzureML 创建 python 环境和 运行s pip install 时,我希望它使用额外的非 public 索引。有办法吗?

我正在 运行在 AzureML 计算上运行我的 python 脚本。根据 docs 根据 pip 要求创建环境。该脚本现在引用私有索引中的包。对于 运行 本地或构建机器上的脚本,我只是在 运行 宁 pip install -c ... 之前指定 PIP_EXTRA_INDEX_URL 环境变量和索引的凭据。如何在 AzureML 环境准备过程中启用相同的功能?

AzureML 文档 suggest 我直接提供 wheel 文件而不是包名称。这意味着我必须手动完成 pip 的所有工作:在其他要求中识别私有包,选择正确的版本和平台,下载它们。

理想情况下,我只需要写这样的东西:

myenv = Environment.from_pip_requirements(
    name = "myenv",
    file_path = "path-to-pip-requirements-file",
    extra-index-url = ["url1", "url2"])

如果您有需求文件,您可以在那里指定额外的索引 urls re.txt

--额外索引-url foo --extra-index-url 栏 package_a package_b package_x

更多选项请点击此处https://pip.pypa.io/en/stable/user_guide/#requirements-files

yaml 文件也是如此

看来,SDK 中有一个 set_pip_option method 解决了一个单独的额外索引问题 - url,例如

from azureml.core.environment import CondaDependencies
dep = CondaDependencies.create(pip_packages=["pyyaml", "param"])
dep.set_pip_option("--extra-index-url https://user:password@extra.index/url")

不幸的是,第二次调用此函数会将第一个值替换为新值。对于 --extra-index-url 选项,应更改此逻辑以支持搜索 2 个以上的索引(一个 public,一个私有)。