AWS SageMaker自定义Conda内核无法切换默认版本求助
我已经在Amazon SageMaker Notebook实例中导入并配置了自定义Conda环境(Python 3.7),系统也检测到了该内核。但运行代码时实际用的是Python 3.10,切换内核并重启Notebook后,还是默认使用其他Conda环境。
执行命令及结果
- 执行命令:
!python --version
输出结果:Python 3.10.8 - 执行命令:
%conda activate test
报错信息:CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
(注:原提问附带三张截图,分别为:终端提示执行conda init <shell_name>的示例、Notebook内核列表显示已存在test环境内核、执行指定路径的激活命令后Python版本仍为3.10.8)
补充尝试
试过执行!conda activate <环境路径>和!source activate <环境路径>,但Python版本还是没切换到3.7。
1. 正确切换内核并验证
在Notebook顶部菜单栏点击Kernel -> Change kernel,选中test环境对应的内核,等待Notebook重启完成。不要用!python --version验证,直接运行代码:
import sys print(sys.version)
因为!开头的命令是在底层shell执行,不一定和当前内核环境一致。
2. 初始化shell后激活环境
在Notebook里先执行:
!conda init bash
关闭当前Notebook再重新打开,然后执行:
%conda activate test
再用上面的Python代码验证版本。
3. 检查内核配置文件
如果内核显示但切换无效,去终端检查内核配置:
- 执行
ls /home/ec2-user/.local/share/jupyter/kernels/,找到test对应的内核目录。 - 查看目录里的
kernel.json,确保pythonpath指向自定义环境的Python路径(比如/home/ec2-user/SageMaker/test/bin/python)。 - 路径错误就编辑修正,然后重启Notebook服务:
sudo systemctl restart jupyter-server
4. 直接指定环境Python路径
如果前面的方法都没用,直接用自定义环境的Python路径执行命令:
!/home/ec2-user/SageMaker/test/bin/python --version
内容的提问来源于stack exchange,提问作者WinterSolstice

