Linux上不同Conda环境下Jupyter内核更换问题记录

问题描述

在服务器中,存在多个conda环境,使用不同环境时,jupyter中的python解释器无法正常切换。使用命令查看python解释器路径时,会发现cmd下进入的python与Notebook中Kernel所使用的python路径不一致。

举例说明,存在两个环境nlp和torch18。首先,在服务器命令行下激活nlp环境并运行jupyter lab

>> conda activate nlp
>> jupyter lab --no-browser

然后,使用浏览器远程连接这个jupyter,查看python解释器的路径

import sys
print( sys.executable)

显示结果为

/home/jxqi/anaconda3/envs/nlp/bin/python

可以看到,它是使用的nlp环境下的python解释器。

接着,关闭这个jupyter,切换到torch18环境并运行jupyter lab

>> conda activate torch18
>> jupyter lab --no-browser

然后,使用浏览器远程连接这个jupyter,查看python解释器的路径

import sys
print( sys.executable)

显示结果为

/home/jxqi/anaconda3/envs/nlp/bin/python

可以看到,它还是使用的nlp环境下的python解释器。

而我们理想的情况是它应当自动切换为了torch18环境下的解释器。这里并没有自动切换,就会导致我们在torch18环境下安装的包无法正常导入。而在命令行中运行python时,是可以正常导入。

解决方法

方法一:删除jupyter内核的配置文件

遇到这个问题后,在与其他同学讨论时发现他的jupyter的配置文件中并没有kernel的配置文件。而他的jupyter则是可以正常的自动切换相应环境下的解释器。于是,我便尝试了直接删除我的目录下的kernel配置文件,之后重启jupyter lab,问题解决。

kernel配置文件路径如下:

首先使用命令查找python3的kernel配置文件路径

>> ipython kernelspec list

显示

Available kernels:
  python3    /home/jxqi/.local/share/jupyter/kernels/python3
  python2    /home/jxqi/.local/share/jupyter/kernels/python2

之后进入到这个这个目录下,直接将python3这个文件夹删除即可。亲测有效。

方法二:添加python conda 环境的kernel

这个方法主要参考:给 jupyter-notebook 添加python conda 环境的kernel | 正确实用 | 简记这篇博客。
首先激活torch18环境,安装ipykernel。

>> conda activate torch18 
>> conda install  ipykernel

然后将环境写入到jupyter

>> python -m ipykernel install --user --name torch18 --display-name "torch18"

最后重启jupyter lab,就可以在菜单栏的kernel中进行切换。不过这样每次都需要手动切换,感觉比较麻烦。所以还是推荐第一种方式,直接删除掉配置文件,简单粗暴有效。

参考

  1. 给 jupyter-notebook 添加python conda 环境的kernel | 正确实用 | 简记,https://blog.csdn.net/sinat_28442665/article/details/86601015
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值