Conda 与 Python 虚拟环境
Jupyter Notebook ipykernel 内核
背景:
Jupyter 在一个名为 kernel 的单独进程中运行用户的代码。kernel 可以是不同的 Python 安装在不同的 conda 环境或虚拟环境,甚至可以是不同语言(例如 Julia 或 R)的解释器。
简而言之,如何使用 conda 环境和 Jupyter 有三种选择:
要在Anaconda Prompt中创建虚拟环境并使其内核直接出现在Jupyter Notebook中,需通过ipykernel
将环境与Jupyter内核关联。以下是具体步骤及原理分析:
配置conda环境的流程说明(原则!原则!)
- 正确流程:激活环境 → 安装
ipykernel
→ 注册内核。
激活环境 |
在激活的环境下安装内核 |
这个命令注册了一个名为my-python3-kernel新内核,并将其与活动虚拟环境相关联。可以将my-python3-kernbel替换任何其他的名称。选择内核时,此名称将显示在Jupyter Notebook界面中。
python -m ipykernel install --user --name=my-python3-kernel |
之后就能在Jupyter Notebook的中看到创建的内核了
注:如果想移除Kernel,可以使用以下命令:
1 查看所有的kernel
jupyter kernelspec list |
2 删除你想删除的kernel
jupyter kernelspec uninstall my-python3-kernel |
以上的方法每新建一个环境,就要重复操作一次。所以我选择一步到位自动注册内核。
使用插件nb_conda_kernels一步到位也就是省略了需要每安装一个虚拟环境都需要注册一个内核的步骤,插件会自动帮你管理和注册内核,适合多环境管理或者团队协作项目。
打开Anaconda prompt,在终端base环境下输入以下两行命令:
conda install nb_conda |
conda install nb_conda 的作用
功能:nb_conda 是一个Conda插件,允许在Jupyter Notebook中直接通过界面管理Conda环境(如创建、删除环境)。
效果:
安装后,Jupyter Notebook会新增一个 “Conda” 标签页(通常在主页的右上角)。
在此标签页中,可以直接查看、激活、导出或删除Conda环境,无需使用终端。
注意:
此包仅在Jupyter Lab 3.0以下版本或Jupyter Notebook中有效。若使用Jupyter Lab 3.0+,需要改用conda install -c conda-forge jupyterlab_conda
。
如果仅在base环境安装,其他虚拟环境不会自动继承此功能。conda install nb_conda_kernels 的作用
功能:nb_conda_kernels 是一个Jupyter插件,用于自动检测所有已安装的Conda环境,并将它们显示为可用的Jupyter内核。
效果:
安装后,Jupyter Notebook/Lab的内核列表中会自动包含所有满足以下条件的Conda环境:
环境必须安装了 ipykernel(通过conda install ipykernel
)。
环境不能是隐藏环境(即名称不能以 . 开头)。
例如,如果有一个名为 myenv 的环境且安装了 ipykernel,启动Jupyter后可直接选择 myenv 内核。
注意:
无需手动执行python -m ipykernel install
,内核会自动注册。
如果环境中未安装 ipykernel,该环境不会出现在内核列表中。在base环境运行这些命令的影响
安装位置:nb_conda 和 nb_conda_kernels 会被安装到base环境中,但它们的功能是全局生效的(即对所有Jupyter实例有效)。
依赖关系:
这两个包会引入额外的依赖(如ruamel.yaml、python等),可能导致base环境变得臃肿。
如果后续卸载它们,需注意是否会影响其他包的依赖链。
版本兼容性:
确保Conda和Jupyter版本兼容。若遇到问题,可尝试执行:
conda update conda jupyter nb_conda_kernels
运行
jupyter kernelspec list
会发生什么
行为:无论当前处于哪个环境,此命令会列出所有已注册的Jupyter内核(包括手动注册的和nb_conda_kernels自动检测的)。
输出示例:Available kernels: myenv C:\Users\user\AppData\Roaming\jupyter\kernels\myenv python3 C:\ProgramData\Anaconda3\share\jupyter\kernels\python3
注意:
如果内核路径指向其他环境的Python解释器(如myenv),即使当前在base环境,启动该内核时仍会使用目标环境的依赖。
如果某个内核无法启动,检查其对应的kernel.json文件中的Python路径是否正确。
- 常见问题与解决
问题1:安装了 nb_conda_kernels,但Jupyter中仍看不到某些环境
原因:目标环境未安装 ipykernel。
解决:在目标环境中执行:conda activate target_env
conda install ipykernel
运行问题2:内核启动失败,报错 No module named ‘ipykernel’
原因:内核指向的环境未安装 ipykernel,或路径错误。
解决:
在目标环境安装 ipykernel。
手动修复内核路径:
jupyter kernelspec remove wrong_kernel_name
python -m ipykernel install --user --name correct_env --display-name "Fixed Env"
问题3:nb_conda 标签页未显示
原因:Jupyter版本不兼容或未正确安装。
解决:
conda remove nb_conda
conda install -c conda-forge jupyterlab_conda # 如果是Jupyter Lab 3.0+
————————————————版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/ytoomob/article/details/145926865
常用命令
激活环境 |