大家好,又见面了,我是你们的朋友全栈君。
文章目录
- 背景
- 需求
- 解决方案
- 结果
- 后续
- 参考
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没有检测到环境,会启动一个服务,然后自动连接
- 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之间的联系
这里提一下怎么把anaconda环境注册到kernel里面:
- 首先切换到要注册的环境
- 然后
pip install ipykernel
- 然后
python -m ipykernel install --name 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完整介紹及安裝說明-b8fcadba15f
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172868.html原文链接:https://javaforall.cn