gpt4 book ai didi

python - 如何避免 az ml run --submit-script 命令中出现错误 "conda --version: conda not found"?

转载 作者:行者123 更新时间:2023-12-02 07:44:38 24 4
gpt4 key购买 nike

我想使用 Azure CLI 的 Azure 机器学习扩展在现有的 Azure 计算实例上运行测试脚本:

az ml run submit-script test.py --target compute-instance-test --experiment-name test_example --resource-group ex-test-rg

我收到一个服务错误,并显示以下错误消息:

Unable to run conda package manager. AzureML uses conda to provision python\nenvironments from a dependency specification. To manage the python environment\nmanually instead, set userManagedDependencies to True in the python environment\nconfiguration. To use system managed python environments, install conda from:\nhttps://conda.io/miniconda.html

但是当我通过 Azure 门户连接到计算实例并选择默认 Python 内核时,conda --version 会打印 4.5.12。因此 conda 实际上已经安装在计算实例上。这就是为什么我不明白错误消息的原因。

有关 azure 版本的更多信息:

  "azure-cli": "2.12.1",
"azure-cli-core": "2.12.1",
"azure-cli-telemetry": "1.0.6",
"extensions": {
"azure-cli-ml": "1.15.0"
}

我使用的图像是:

mcr.microsoft.com/azure-cli:latest

有人可以解释一下为什么我会收到此错误并帮助我解决该错误吗?谢谢!

编辑:我尝试更新运行 az ml run 命令的环境。本质上,这是我的 GitLab 工作。 miniconda 的安装有点复杂,因为 azure-cli 使用 alpine Linux 镜像(引用: Installing miniconda on alpine linux fails )。我用...替换了一些名称,并删除了一些不相关的代码片段。

test:
image: 'mcr.microsoft.com/azure-cli:latest'
script:
- echo "Download conda"
- apk --update add bash curl wget ca-certificates libstdc++ glib
- wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://raw.githubusercontent.com/sgerrand/alpine-pkg-node-bower/master/sgerrand.rsa.pub
- curl -L "https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.23-r3/glibc-2.23-r3.apk" -o glibc.apk
- apk del libc6-compat
- apk add glibc.apk
- curl -L "https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.23-r3/glibc-bin-2.23-r3.apk" -o glibc-bin.apk
- apk add glibc-bin.apk
- curl -L "https://github.com/andyshinn/alpine-pkg-glibc/releases/download/2.25-r0/glibc-i18n-2.25-r0.apk" -o glibc-i18n.apk
- apk add --allow-untrusted glibc-i18n.apk
- /usr/glibc-compat/bin/localedef -i en_US -f UTF-8 en_US.UTF-8
- /usr/glibc-compat/sbin/ldconfig /lib /usr/glibc/usr/lib
- rm -rf glibc*apk /var/cache/apk/*
- echo "yes" | curl -sSL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh
- echo "Install conda"
- (echo -e "\n"; echo "yes"; echo -e "\n"; echo "yes") | bash -bfp miniconda.sh
- echo "Installing Azure Machine Learning Extension"
- az extension add -n azure-cli-ml
- echo "Azure Login"
- az login
- az account set --subscription ...
- az configure --defaults group=...
- az ml folder attach -w ...
- az ml run submit-script test.py --target ... --experiment-name hello_world --resource-group ...

最佳答案

您的基础镜像中需要 conda 以实现基于容器的环境。您可以通过使用base_dockerfile而不是base_image安装conda来扩展基本镜像 https://learn.microsoft.com/en-us/python/api/azureml-core/azureml.core.environment.dockersection?view=azure-ml-py或者,如果这适合您,请使用 AzureML 基础 Docker 镜像之一。

如果您的基础镜像不需要任何 python 依赖项,您可以将 user_driven_dependency 设置为 True,基础镜像将按原样使用,并且不会安装任何其他依赖项

https://learn.microsoft.com/en-us/python/api/azureml-core/azureml.core.environment.pythonsection?view=azure-ml-py

关于python - 如何避免 az ml run --submit-script 命令中出现错误 "conda --version: conda not found"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64207678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com