azurejupyter-notebookvirtual-machinecondaazure-machine-learning-service

Can't change virtual environment within Azure ML notebook


For some reason the jupyter notebooks on my VM are in the wrong environment (ie stuck in (base)). Furthermore, I can change the environment in the terminal but not in the notebook. Here is what happens when I attempt !conda activate desired_env in the notebook:

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:
  - bash
  - fish
  - tcsh
  - xonsh
  - zsh
  - powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.


# conda environments:
#
base                  *  /anaconda
azureml_py36             /anaconda/envs/azureml_py36
azureml_py38             /anaconda/envs/azureml_py38
azureml_py38_pytorch     /anaconda/envs/azureml_py38_pytorch
azureml_py38_tensorflow     /anaconda/envs/azureml_py38_tensorflow

I tried the answers here (e.g., first running !source /anaconda/etc/profile.d/conda.sh).

I also tried activating the environment using source rather than 'conda activate': !source /anaconda/envs/desired_env/bin/activate. This runs but doesn't actually do anything when I see the current environment in conda env list

Edit: also adding that if I install a package in the (base) environment in the terminal, I still don't have access to it in jupyter notebook.


Solution

  • I'm the PM that released AzureML Notebooks, you can't activate a Conda env from a cell, you have to create a new kernel will the Conda Env. Here are the instructions: https://learn.microsoft.com/en-us/azure/machine-learning/how-to-access-terminal#add-new-kernels