Azure machine learning service 创建azureml环境时如何指定pip额外索引url?

Azure machine learning service 创建azureml环境时如何指定pip额外索引url?,azure-machine-learning-service,Azure Machine Learning Service,当AzureML创建python环境并运行pip install时,我希望它使用额外的非公共索引。有办法吗 我正在AzureML计算机上运行python脚本。环境是根据pip需求创建的。脚本现在引用私有索引中的包。要在本地或构建计算机上运行脚本,我只需在运行PIP安装-c…之前指定带有索引凭据的PIP\u EXTRA\u INDEX\u URL环境变量。如何在AzureML环境准备过程中启用相同的功能 AzureML文档,我直接提供轮子文件而不是包名。这意味着我必须手动完成构建pip的所有工作:

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

我正在AzureML计算机上运行python脚本。环境是根据pip需求创建的。脚本现在引用私有索引中的包。要在本地或构建计算机上运行脚本,我只需在运行
PIP安装-c…
之前指定带有索引凭据的
PIP\u EXTRA\u INDEX\u URL环境变量。如何在AzureML环境准备过程中启用相同的功能

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

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

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

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

--额外索引url foo --额外索引url栏 a包 b包 包装

有关更多选项,请查看此处

yaml文件也是如此。看来,SDK中有一个解决问题的方法,只需一个额外的索引url,例如

来自azureml.core.environment导入条件依赖项
dep=CondaDependencies.create(pip_包=[“pyyaml”,“param”])
dep.set\u pip\u选项(“--额外索引urlhttps://user:password@额外索引/url“)

不幸的是,对该函数的第二次调用将第一个值替换为新值。对于
--额外索引url
选项,应更改此逻辑,以支持在两个以上的索引(一个公共,一个私有)中进行搜索。

谢谢,尽管此解决方案可能最终导致凭据签入到存储库,这是一种不好的做法。我明白了,您可以尝试此方法。请注意,您可以将列表传递给--extra index url,如下所示:
dep.set\u pip\u选项(“--extra index urlhttps://user:password@extra.index/url1,https://user:password@extra.index/url2“
不幸的是,这不起作用。Pip(从v19.3.1开始)对来自cmdline/requirements的此选项与来自config/env的此选项的处理方式不同。在配置文件或PIP_EXTRA_INDEX_URL中,可以提供一个以空格分隔的URL列表。在cmdline或需求文件中,每个选项都是附加到额外URL列表中的单个值。特别是,PIP会把上面的例子当作一个额外的URL,中间有逗号,很明显是故障。这个用户名密码是你的Azure Deops用户名和个人访问令牌。