vscode 和 Jupyter Notebook 之间是什么关系

2020-08-22 09:39:52 +08:00
 Hlianbobo
目前我的认识如下:vscode 和 Jupyter Notebook 都是支持 python 的开发环境(具体是 ide 还是编辑器,可议,但不是重点)。但是看了下面这个文章我有有点晕了: https://zhuanlan.zhihu.com/p/85445777
怎么在 vscode 中使用 Jupyter Notebook ?

问题:
1 、为什么要在 vscode 中使用 Jupyter Notebook 插件来实现 Jupyter Notebook 环境?直接使用 Jupyter Notebook 不好么?


2 、文章中介绍的图表查看器是可以不用 matplotlib 就可以实现数据可视化么?我觉得应该没这么容易吧。如果不是 matplotlib 的替代。那图表查看器出图的前提条件是什么?


3 、图表查看器和数据查看器和变量查看器是 vscode 中 Jupyter Notebook 插件的功能还是 Jupyter Notebook 本身的功能?或者是 vscode 自带的功能?以变量查看器为例,能实现向 matlab 和 spyder 当中那样双击矩阵变量就以表格的形式显示变量么?并且可以对表格数据进行复制么?

关于变量窗口可以看这个链接: https://www.zhihu.com/question/403622435
5659 次点击
所在节点    Python
14 条回复
renmu123
2020-08-22 09:44:05 +08:00
你去试用原版 jupyter 就知道他和别的 ide 有什么区别的,你的问题也能解决了
breakertt
2020-08-22 09:58:05 +08:00
vs code 套娃呗,不过的确比 jupyter notebook 的网页版好用。
Hlianbobo
2020-08-22 10:01:11 +08:00
@breakertt 用过其中的图表查看器么?可以像用 Excel 那样直接对某个变量的数据出图,不用写代码?
nightwitch
2020-08-22 10:30:12 +08:00
1. vscode 里配 jupyter notebook 可以既使用 jupyter 提供的功能又使用 vscode 提供的补全之类的功能。
2. 不可以。先要用 matplotlib 出图以后,双击出的图才会进到图表查看器。主要用途是放大查看和保存到其他格式。
3. 没用过
agriphar
2020-08-22 10:40:39 +08:00
vscode 想把使用 Jupyter Notebook 的用户拉拢过来,最终达到一统江湖的目的
MaxTan
2020-08-22 12:02:12 +08:00
用 vscode 习惯点啊,而且 vscode 里面可以用 vim 模式
dlsflh
2020-08-22 12:51:15 +08:00
Spyder 像是这两个的综合体。
yech1990
2020-08-22 17:55:14 +08:00
你和部分回复应该是弄混概念了。

- vscode 是近似 IDE 的编辑器,jupyter 也是编辑器。notebook (其实是 ipynb, ipython notebook )是文件格式,好比 markdown 一样是一种文件格式。

- vscode 里面打开,是打开 notebook 文件,不是打开 jupyter 。
IgniteWhite
2020-08-22 22:47:25 +08:00
这篇文章讲的都是编辑器插件层面的,如果只讲编辑器,那么 jupyter notebook,vscode,甚至 jupyter lab 都有各自的插件,也都有 vim 模式,等等。

(接下来我谨慎对待大小写) Jupyter 最精髓的东西不是它的编辑界面!而是它基于的一个可交互 Python 内核,叫 IPython 。IPython 和 Jupyter 一样,都是 Python 的包,IPython 是 Jupyter 的依赖。有了 IPython,Jupyter 才实现了一个 cell 一个 cell 调试的功能。

既然 IPython 也是包,那么在安装一整套 Jupyter server 端的过程中,我们也要首选选择 Python 的版本,是否使用 Python 虚拟环境,如果使用的是 Anaconda/Miniconda/Miniforge 等版本,就要使用 conda 作为包管理器和虚拟环境管理器。配置好 Python 环境之后,在需要的 Python 虚拟环境里装 Jupyter 包,它会自动安装 IPython 等依赖。

现在可以回答楼主的问题了。这个知乎专栏里提到两点,第一点是“目前,如果要调试 Jupyter Notebook,需要先把 Jupyter Notebook 转为 Python 文件,再进行调试。开发团队正在努力工作,未来,将能直接在 Jupyter editor 里进行调试!”可见,它目前是不带 Jupyter 的 server 的,当然也就没有 IPython,不能交互执行。第二点是“连接到远程的 Jupyter server”这一部分,远程的 server 当然是一个配置好了各方面包的 Jupyter,是一个一直运行在服务器里的进程。

数据可视化这部分,我的猜测是这个插件自带了一些 Python 的东西,不知道是不是用的 matplotlib,因为 seaborn 和 plotly 之类的包也能出图,当然 seaborn 是基于 mpl 的。数据和变量的 inspector 应该也是插件的。关键还是看你的 Python 环境部署在哪里。
IgniteWhite
2020-08-22 23:14:31 +08:00
我刚刚看了一下 vscode 的官方 doc: https://code.visualstudio.com/docs/python/jupyter-support,发现楼主看的这个知乎专栏翻译转载自这篇官方 doc 。有些部分他没转载,导致难以理解。我在这里把缺失的部分按照楼主问题顺序翻译讲一下:

1. 出自 https://code.visualstudio.com/docs/python/jupyter-support#_debug-a-jupyter-notebook:In VS Code, if you haven't already, activate a Python environment in which Jupyter is installed. 这就像我前面说的一样,交互调试的 Python 环境是需要你自己部署的。同时这一部分也讲到了其他细节,感兴趣可以去看

2. 出自 https://code.visualstudio.com/docs/python/jupyter-support#_plot-viewer:Note: There is support for rendering plots created with matplotlib and Altair. 说明插件里有包含着两个包

3. 出自 https://code.visualstudio.com/docs/python/jupyter-support#_variable-explorer-and-data-viewer:Note: Variable explorer is enabled by default, but can be turned off in settings (Python > Data Science: Show Jupyter Variable Explorer). 我的理解是数据和变量查看器属于 python 插件 data science 功能的一部分
IgniteWhite
2020-08-22 23:15:22 +08:00
链接没搞好,麻烦复制粘贴看
silkriver
2020-08-25 13:28:20 +08:00
spyder 有一个 spyder-notebook 插件,vscode 所做的其实和它类似吧
https://github.com/spyder-ide/spyder-notebook
northisland
2020-08-25 15:12:21 +08:00
微软出品,文质俱佳,值得唾弃。
northisland
2020-08-25 15:37:07 +08:00
https://en.wikipedia.org/wiki/Project_Jupyter

jupyter-notebook 是一个写报告的 python 开发者常用的工具,,,能把实验的中间结果留存、展示。也常作为多种编程语言培训的工具。
生成的 ipynb 文件匹普通 python 文件大很多,执行效率也低很多。
根据官网 https://jupyter.org/about 是 ipython 项目开发中,2014 年独立出来的,侧重交互的项目。


https://en.wikipedia.org/wiki/Visual_Studio_Code
2015 年的编辑器,2019 年貌似成了世界用户数量第一的编程工具=_= 。貌似是在 jupyter 外围加了一层皮。

多的不知道。有空试一下。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/700445

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX