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

部署运行你感兴趣的模型镜像

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

我们该怎么切换环境呢。

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

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

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。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think>好的,我现在需要解决用户提到的两个错误信息:“system has not been booted with systemd as init system”和“failed to connect to bus: host is down”。这两个问题通常出现在使用systemd命令的非systemd系统上,比如使用SysVinit或Upstart的系统。用户可能是在尝试运行像systemctl或hostnamectl这样的命令,但这些命令需要systemd的支持。 首先,关于第一个错误,用户可能误用了systemd特定的命令。例如,在Ubuntu系统中,如果使用的是旧版本或者特定的衍生版,可能默认不是systemd。比如用户提到的参考引用中的情况,可能涉及硬件兼容性导致的问题,但这里更可能的是初始化系统的不同。需要确认用户当前使用的初始化系统是什么,可能是SysVinit或Upstart。解决方法包括使用对应初始化系统的命令替代,比如使用service或/etc/init.d/脚本。 第二个错误“failed to connect to bus”通常是因为系统没有运行dbus守护进程,或者用户权限问题。在非systemd系统中,dbus可能没有自动启动,或者环境变量设置不正确。需要检查dbus服务是否运行,并确保用户有权限访问总线。 接下来,用户可能需要具体的步骤来解决这两个问题。例如,对于第一个错误,替换命令为sysvinit兼容的命令;对于第二个错误,启动dbus服务并正确设置环境变量。同时,用户可能需要安装一些兼容层工具,比如systemd-container,但要注意这可能带来其他问题。 另外,参考用户提供的引用,提到Ubuntu某些硬件兼容性问题导致崩溃,可能与内核有关。虽然当前问题可能不直接相关,但需要考虑系统是否稳定,是否存在其他硬件兼容性问题影响dbus或初始化系统的正常运行。可能需要检查系统日志,查看是否有相关错误信息。 总结解决步骤:1. 确认初始化系统类型;2. 替换systemd命令为对应系统的命令;3. 确保dbus服务运行并正确配置环境变量;4. 考虑使用替代工具或兼容层;5. 检查系统日志排除其他问题。</think>### 分步解决方案 #### 问题1: `system has not been booted with systemd as init system` **原因**: 此错误表示当前系统未使用 `systemd` 作为初始化系统(如使用 `SysVinit` 或 `Upstart`),但尝试执行了依赖 `systemd` 的命令(如 `systemctl`)。 **解决方法**: 1. **确认初始化系统** 通过以下命令检查当前初始化系统: ```bash ps -p 1 -o comm= ``` 若输出为 `init`(SysVinit)或 `upstart`,则需使用对应命令替代。 2. **替换命令** - 启动/停止服务: ```bash # SysVinit/Upstart sudo service <服务名> start # 或 sudo /etc/init.d/<服务名> start ``` - 查看服务状态: ```bash sudo service <服务名> status ``` 3. **避免依赖`systemd`的工具** 部分工具(如 `hostnamectl`)需替换为其他方式: - 修改主机名:直接编辑 `/etc/hostname` 并重启。 - 查看系统信息:使用 `uname -a` 或 `lsb_release -a`。 #### 问题2: `failed to connect to bus: host is down` **原因**: 此错误通常由以下原因导致: 1. 系统未运行 `dbus` 守护进程(非`systemd`系统可能未自动启动)。 2. 用户权限不足或环境变量未正确配置。 **解决方法**: 1. **启动`dbus`服务** ```bash # 适用于SysVinit/Upstart sudo service dbus start # 或 sudo /etc/init.d/dbus start ``` 2. **设置环境变量** ```bash export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket ``` 将此行添加到 `~/.bashrc` 或 `~/.profile` 中永久生效。 3. **检查权限** 确保用户属于 `messagebus` 用户组: ```bash sudo usermod -aG messagebus $USER ``` 4. **使用替代工具** 若需执行类似 `systemd` 的操作,可安装 `systemd-container`(需谨慎): ```bash sudo apt install systemd-container ``` #### 附加建议 - **检查系统日志**: ```bash dmesg | grep -i error ``` 排查硬件兼容性问题(如参考引用中提到的 `Intel Bay Trail` 相关问题)[^1]。 - **升级内核或固件**:若问题由硬件兼容性导致,更新系统或应用补丁可能解决。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值