我正在尝试为Azure机器学习计算示例开发启动脚本,在测试时遇到了一些奇怪的问题。
我的代码:
#!/bin/bash
set -x
ENVIRONMENT=azureml_py38
conda --version
export HTTPS_PROXY=******
conda update -n base -c defaults conda -y
conda create -n custom_env python=3.10 -y
conda activate custom_env
conda install -y pip
conda install -y ipykernel
python -m ipykernel install --user --name custom_env --display-name "(custom_env)"
pip install wheel
pip install --upgrade pip
pip install --upgrade setuptools
pip install azureml-core
echo "$PWD"
对于所有的conda命令抛出这个错误/mnt/batch/tasks/shared/LS_root/mounts/clusters/ld-custom-compute-v002/code/Users/ME/custom_compute_startup.sh: line 4: conda: command not found
。
但是,如果我将其作为代码,我不会得到这些错误,但工作目录变为/home/azureuser。我希望这些命令运行在一个更独特的目录下,例如/home/azureuser/cloudfiles/code/users/me
#!/bin/bash
set -x
sudo -u azureuser -i <<'EOF' #key change
ENVIRONMENT=azureml_py38
conda --version
export HTTPS_PROXY=******
conda update -n base -c defaults conda -y
conda create -n custom_env python=3.10 -y
conda activate custom_env
conda install -y pip
conda install -y ipykernel
python -m ipykernel install --user --name custom_env --display-name "(custom_env)"
pip install wheel
pip install --upgrade pip
pip install --upgrade setuptools
pip install azureml-core
echo "$PWD"
EOF
这里有一个在线示例,Azure自己指出这是一种做非常相似的事情的方法。您会注意到脚本在运行某些命令之前不会使用sudo -u azureuser -i。https://github.com/Azure/azureml-examples/blob/main/setup/setup-ci/setup-custom-conda-env.sh
1条答案
按热度按时间gz5pxeao1#
我用提供的bash代码复制了这个问题。
看起来第二个脚本正在工作,而不是将默认工作目录设置为
/home/azureuser
。一种可能的解决方案是通过获取Conda初始化脚本来设置必要的环境变量。这将确保
conda
命令在脚本中可用。下面是修改后的脚本版本:此时,当前目录将更改为所需路径。
使用第二个脚本的另一个可能的解决方案是在执行任何Conda命令之前更改目录。
这样,您将根据需要获得当前的工作目录。