PyCharm中编写ipynb文件


Anaconda和Jupyter用得多,但是对于配置非常头痛,昨天jupyter无论如何都启动不了服务,重装了anaconda两次终于理清楚了

背景

我的Pycharm下面有很多Project,每个Project一个Anaconda环境,昨天新开了一个Project叫CLRS_Code,Anaconda环境名也叫CLRS_Code
然后我之前没有在Pycharm里面用过Jupyter,突然想试试这个功能,然后就新建一个.ipynb文件,Pycharm提示我没有装Jupyter Packages,然后我就在Pycharm里面装了,装完之后,搜索Jupyter,会出现两个启动选项。。
在这里插入图片描述

第一个anaconda3就是自带的Jupyter,下面那个CLRS_Code,是刚刚在Pycharm里面安装Jupyter Packages出现的Jupyter

需求

用Pycharm连接jupyter notebook服务
在Pycharm中编写.ipynb
将当前anaconda环境注册为kernel(可选)

解决方案

首先一切的前提就是原来的Jupyter notebook能够运行,如果原来的都崩了,那么只能重装anaconda

1.启动服务

然后启动Jupyter服务的方式有三种,一种是直接运行下面的exe
在这里插入图片描述
另一种是在anaconda的cmd里面,输入jupyter notebook启动服务

最后一种是直接在Pycharm里面操作,尝试运行,如果pycharm没有检测到环境,会启动一个服务,然后自动连接

  1. Pycharm连接jupyter
    如果之前没有用pycharm启动jupyter,那么需要下面操作

启动完之后,窗口会弹出来这些内容,
在这里插入图片描述
复制这些内容,然后在Pycharm里面这一栏配置
在这里插入图片描述
复制刚刚的内容到Configured Server里面
在这里插入图片描述

结果

现在终于能在Pycharm里面写.ipynb了,很舒适,尽管会一直弹出来这个提示
在这里插入图片描述
它意思就是当前的解释器和notebook的kernel不匹配,其实到现在也能运行,但是如果强迫症非要去掉的话,让Pycharm去注册是没用的,我之前就是想用Pycharm搞定,结果搞得非常混乱
解决方法就是 要自己去anaconda prompt里面注册,参考别人的解决方案:https://youtrack.jetbrains.com/issue/PY-36913
在这里插入图片描述
其实就是将当前解释器注册成kernel,不过我没有用的上面命令,我参考的是这篇文章:https://blog.csdn.net/june_young_fan/article/details/85100578

后续

前面提到两个jupyter notebook启动项,看起来电脑上存在着两个jupyter notebook,但是实际上它们指向的是同一个exe,也就是说电脑上只有一个jupyter notebook。

如果你修改了jupyter的配置,那么这些修改是全局修改,所以你在anaconda里面虽然有多个环境,但是anaconda里面只有一个jupyter,base环境里面是有jupyter packages的,所以可以连接jupyter,但是新建环境里面不会带jupyter packages,所以pycharm会提示你安装jupyter packages,安装完之后才可以连接,画一个示意图

在这里插入图片描述

解释一下就是anaconda里面会包含多个环境,然后jupyter notebook里面需要用kernel来执行notebook里面的代码,这里我们将CLRS_Code注册成kernel,然后启动jupyter notebook之后连接上jupyter服务,并且我们使用对应当前环境的kernel来编写代码,这样就没有任何问题了

同时上图也解释了anaconda、jupyter notebook、环境、kernel之间的联系

参考

修改jupyter notebook 启动目录: https://blog.csdn.net/yuanxiang01/article/details/79217469

将当前环境注册为kernel:https://blog.csdn.net/june_young_fan/article/details/85100578

jupyter notebook介绍:https://medium.com/python4u/jupyter-notebook%E5%AE%8C%E6%95%B4%E4%BB%8B%E7%B4%B9%E5%8F%8A%E5%AE%89%E8%A3%9D%E8%AA%AA%E6%98%8E-b8fcadba15f

猜你喜欢

转载自blog.csdn.net/hhmy77/article/details/111518226