Azure ML notebook中无法切换conda虚拟环境问题咨询
Jupyter Notebook无法切换Conda环境解决方案
问题根因
你之前执行的所有带!前缀的命令均运行在Jupyter创建的独立子shell中,命令执行完成后子shell会直接销毁,对环境变量的修改无法同步到Jupyter主内核进程,因此不管是!conda activate还是!source activate都无法改变当前内核的运行环境。
可行解决方案
方案1:将目标环境注册为Jupyter内核(最稳定,推荐)
这是长期使用多环境的最优方案,操作步骤如下:
- 打开终端,切换到你需要使用的目标环境
conda activate desired_env
- 在目标环境中安装ipykernel
conda install ipykernel # 如conda安装失败也可使用pip安装 pip install ipykernel
- 将当前环境注册到Jupyter内核列表
python -m ipykernel install --user --name desired_env --display-name "Python (desired_env)"
其中--name参数填你的conda环境名,--display-name参数填你想在Jupyter界面中显示的内核名称,可自定义。
- 重启Jupyter Notebook,后续创建新笔记时可以直接选择对应内核,已有笔记也可以通过顶部菜单
Kernel -> Change kernel切换到目标环境。
方案2:使用魔法命令直接为当前内核操作包
如果你只是需要给当前Jupyter内核对应的环境安装包,不需要切换环境,可直接使用%conda、%pip魔法命令,而非带!的命令:
# 给当前内核对应的conda环境安装pandas %conda install pandas # 给当前内核对应的环境用pip安装requests %pip install requests
该方法会直接将包安装到当前内核对应的环境中,解决你提到的「终端base环境装包Jupyter无法访问」的问题。
验证当前内核环境
你可以在Notebook中执行以下代码,查看当前内核对应的Python路径,确认是否和你预期的环境路径一致:
import sys print(sys.executable)
比如base环境对应的路径应该为/anaconda/bin/python,azureml_py38环境对应的路径为/anaconda/envs/azureml_py38/bin/python。
内容的提问来源于stack exchange,提问作者Brian Barry
相关产品推荐
相关产品推荐

