当前位置: 首页 > news >正文

2.jupyter切换使用conda虚拟环境的最佳方法

服务器上配置有多个 conda 虚拟环境,在使用jupyter notebook时需要使用其中的一个环境,但是其默认是使用 base 环境。

我们该怎么切换环境呢。

Jupyter 在一个名为 kernel 的单独进程中运行用户的代码。kernel 可以是不同的 Python 安装在不同的 conda 环境或虚拟环境,甚至可以是不同语言(例如 Julia 或 R)的解释器。

简而言之,如何使用 conda 环境和 Jupyter 有三种选择:

  • 1.在 conda 环境中运行 Jupyter 服务器和内核
  • 2 为 conda 环境创建特殊内核
  • 3 使用 nb_conda_kernels 添加所有环境

1 和 2操作复杂,第一种方法要为每个conda环境都要装jupyter;第二种方法其实也挺不错的。有个缺点是,你新建一个环境,就要重复操作一次。

方法1:

conda create -n my-conda-env   # creates new virtual env
conda activate my-conda-env    # activate environment in terminal
conda install jupyter     # install jupyter + notebook
jupyter notebook       # start server + kernel

方法2:

conda create -n my-conda-env    # creates new virtual env
conda activate my-conda-env     # activate environment in terminal
conda install ipykernel      # install Python kernel in new conda env
ipython kernel install --user --name=my-conda-env-kernel  # configure Jupyter to use Python kernel
jupyter notebook      # run jupyter from system

方法3(推荐):

而这个方法就是一键添加所有 conda 环境,且不妙哉!

1. 激活项目环境并安装 IPython 内核

conda activate my-conda-env    # 激活名为 my-conda-env 的 Conda 环境,这是你项目的主环境
conda install ipykernel        # 在该环境中安装 ipykernel,它允许 Jupyter 连接到这个环境的 Python 解释器
conda deactivate               # 退出当前环境,回到基础环境或之前的环境

作用:将项目环境注册为 Jupyter 可用的内核,以便在 Notebook 中选择该环境的 Python。

2. 在基础环境中安装 nb_conda_kernels 并启动 Jupyter

conda activate base            # 激活 Conda 的基础环境(也可以是其他已安装 Jupyter 的环境)
conda install nb_conda_kernels # 安装 nb_conda_kernels 插件,它会自动识别所有 Conda 环境并添加到 Jupyter 的内核列表中
jupyter notebook               # 启动 Jupyter Notebook 服务器,此时可以在浏览器中选择不同环境的内核

作用:在 Jupyter 中添加对所有 Conda 环境的支持,使你能够在同一个 Notebook 界面中切换不同环境的 Python 内核。

工作原理

  1. ipykernel:每个 Conda 环境需要安装 ipykernel 才能作为 Jupyter 内核被识别。
  2. nb_conda_kernels:在 Jupyter 所在环境(通常是 base)中安装该插件后,它会自动扫描所有 Conda 环境,并将已安装 ipykernel 的环境添加到 Jupyter 的内核选择菜单中。
  3. 内核切换:启动 Jupyter 后,在 Notebook 的顶部菜单中选择 Kernel → Change kernel,即可切换到不同 Conda 环境的 Python。
http://www.lryc.cn/news/573597.html

相关文章:

  • Flink SQL Connector Kafka 核心参数全解析与实战指南
  • Windows防火墙指南大全:安全红线与科学替代方案
  • 通俗理解物联网中的APN
  • Vmware WorkStation 17.5 安装 Ubuntu 24.04-LTS Server 版本
  • 【机器学习】数学基础——张量(进阶篇)
  • 九联UNT403G/UNT413G-国科GK6323V100C-2+8G/4+16G-安卓9.0-优盘短接强刷固件包
  • 抖音小程序开发:ttml和传统html的区别
  • 深入解析C#数组协变与克隆机制
  • Android NDK—JNI基础
  • Linux(3)
  • Kafka 原理与核心机制全解析
  • Vite 原理深入剖析
  • 【PyTorch革命】机器学习系统编程模型的演进之路
  • 从C++编程入手设计模式——命令模式
  • 【机器学习四大核心任务类型详解】分类、回归、聚类、降维智能决策指南
  • 8.特征提取与直方图
  • MATLAB GUI界面设计 第二章——APP Designer操作正式入门
  • Linux 下的 socket
  • Node.js爬虫 CheerioJS ‌轻量级解析、操作和渲染HTML及XML文档
  • 【机器学习的五大核心步骤】从零构建一个智能系统
  • STM32-GPIO-推挽输出详解
  • 深入解析Flink Local模式启动流程源码:揭开作业初始化的神秘面纱
  • Ubuntu20 搭建 Java、Redis、Nginx
  • GO 语言学习 之 helloWorld
  • 2025年SVN学习价值分析
  • react day.js使用及经典场景
  • 【RocketMQ 生产者和消费者】- 消费者重平衡(3)- 消费者 ID 对负载均衡的影响
  • 微前端MFE: 通过共享模块通信(模块联邦Module Federation)
  • 【机器学习四大核心任务类型详解】分类、回归、聚类、降维都是什么?
  • 【论文阅读笔记】TransparentGS:当高斯溅射学会“看穿”玻璃,如何攻克透明物体重建难题?