VS Code Jupyter Notebook导入azureml.train.automl出现ModuleNotFoundError问题
问题现象
我使用.yml文件安装了所有所需的Azure ML相关包,基于该yml创建虚拟环境后,在命令行中测试包导入均正常。但在VS Code中打开待使用的Jupyter Notebook,执行如下导入语句时出现报错:
from azureml.train.automl import AutoMLConfig
报错信息为:ModuleNotFoundError: No module named 'azureml.train.automl.automlconfig'
该导入操作在命令提示符中可以正常执行,验证结果如下图:
解决方案
该问题是VS Code Jupyter场景下的高频共性问题,核心原因是VS Code运行Notebook时使用的内核与你测试通过的虚拟环境不匹配,导致无法识别虚拟环境中已安装的依赖包,可按以下步骤依次排查解决:
- 切换Notebook内核
打开目标Notebook后,点击界面右上角的内核选择按钮,在下拉列表中选中你通过yml创建的对应虚拟环境的Python解释器,重新执行导入代码即可。
如果下拉列表中没有找到目标虚拟环境,执行下一步操作。
- 切换Notebook内核
- 手动注册虚拟环境到Jupyter内核
先激活安装了Azure ML依赖的虚拟环境,在命令行依次执行以下命令:
- 手动注册虚拟环境到Jupyter内核
# 安装ipykernel依赖 pip install ipykernel # 注册内核,将<你的虚拟环境名>替换为实际创建的虚拟环境名称 python -m ipykernel install --user --name <你的虚拟环境名> --display-name "Python (<你的虚拟环境名>)"
执行完成后重启VS Code,重新选择对应内核即可。
- 路径校验排查
如果操作后仍报错,可在Notebook中运行以下代码,打印当前使用的Python解释器路径:
- 路径校验排查
import sys print(sys.executable)
再在已激活目标虚拟环境的命令行中执行对应命令对比路径:
- Windows系统执行
where python - macOS/Linux系统执行
which python
若两者路径不一致,可在VS Code设置中搜索python.defaultInterpreterPath,将参数值设置为虚拟环境对应的Python可执行文件路径,重启VS Code后重新尝试。
内容的提问来源于stack exchange,提问作者cch
相关产品推荐
相关产品推荐

