目录
Jupyter 简介
Jupyter是一个开源的交互式计算环境,允许用户编写和运行代码、创建文档以及展示结果。
主要特性
- 交互式编程:即时执行代码并查看结果。
- 多语言支持:如Python、R、Julia等。
- 富文本编辑:可以使用Markdown、HTML和LaTeX等格式。
- 数据可视化:方便地内嵌各种图形和图表。
安装和使用
安装
使用pip进行安装:
pip install jupyter
启动
运行以下命令启动Jupyter Notebook:
jupyter notebook
问题描述
Jupyter Notebook是一个很好的编辑器,在日常的编程中既可以编写代码,还能针对编程的代码写下大量的注释内容,经常使用jupyter制作的内容用于课程教学。
但是今天遇到一个问题:在pycharm可以运行的代码,在jupyter却无法运行。
有人可能会说是因为你的pycharm和jupyter使用的不是同一个环境。的确有这种可能,但是我查看了我的conda环境,一共就两个环境:
当我打开我的pycharm,去查看里面的python解析器时,我选择已经存在的环境时结果如下:
看到这个结果,那我认为我的pycharm其实选择的是base环境。
但是当我打开我的jupyter时,我看到的结果就很让我困惑:
而且,在我选择python 3.9(xpython)时,这个核是无法运行的,所以我当时就认为第一个python 3的核应该是对应base环境的,所以缺少的库我都使用pip在base环境安装了。
当时它报出下面这个错误时我就很困惑:
因为我的base环境是安装了这个库的,如下图:
解决问题
在网上没找到一个明确的回答,但是我猜可能是因为自己的环境的问题,但是我实在是无法理解,因为我一共就两个环境,应该这个对应是没有错的。为了解答这个问题,我重新创建了一个环境来进行实验。
第一步:创建环境
conda create --name myenv python=3.9
第二步,激活环境
conda activate myenv
第三步,安装ipykernel
pip install ipykernel
第四步,添加环境到jupyter
python -m ipykernel install --user --name=myenv --display-name "My Environment"
这一步将设置的环境myenv在jupyter上展示为My Environment以供选择的核
第五步,启动jupyter
jupyter notebook
第六步,选择kernel
在这个环境中,我安装了运行代码所需要的库。
并且安利一下,在国内使用pip install 安装简直就是龟速下载,所以我们一定要使用镜像下载,这个非常的快。举个下载pandas的例子:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas
通过在 "Kernel"(内核)菜单中选择 "Change Kernel"(更改内核)来选择My Environment环境内核。
相同的代码,这次我得到了想要的结果:
问题理解
我觉得比较跟本的原因是因为以前在安装jupyter时没有去做第四步,ipykernel的安装,导致我们在conda上创建的python环境无法在jupyter上面使用。其实主要是因为base环境没有做好配置,而在这时又跑出一个可以用的python 3 环境,这导致我认为这两个是一个东西。其实它们不是同一个环境。
其实会出现像“Python 3”和“Python 3.9 (xpython)”,这通常意味着你的系统中安装了多个Python内核或解释器,并且它们已经被添加到Jupyter中。可能在同一台机器上安装了多个Python环境或版本,比如一个来自系统默认的Python,另一个可能是通过Anaconda或其他方式安装的。
问题再解决
既然,已经找到问题,面对这种情况,我们除了只能重新创建新环境外,还可以将以前没有添加的环境加入到可选的核里面来,操作如下:
使用以下命令查看已经安装的核:
jupyter kernelspec list
我们可以看到,里面是没有base环境的核的。
第一步,激活base环境
conda activate base
第二步,安装ipykernel
conda install ipykernel
第三步,添加python解释器到jupyter内核
python -m ipykernel install --user --name base --display-name "Python (base)"
最终结果如下:
我们已经成功添加了base环境进来了,下面让我选择这个核来运行一下代码。
最终得到了我们想要的结果。