ob-ipython 和 scimax 的竞争者出现了

作者说了对标的是 ob-ipython,而不是 ein。这个看起来比 ob-ipython 要更强大。emacs 阵营牛人多啊。

3 个赞

我用ob-ipython的一个主要问题是同一个会话下,跨代码块编辑时lsp不能补全,其它的还好。

看描述这个新包应该没有这个问题。还没试,今天抽空装上试试。

这个包看起来不错,但是要 build 一个 binary,这样安装很麻烦呀

你好,之前看过你安利lpy的帖子,想请教一下lpy和orgmode+ob-ipython相比有什么不同的地方?lpy使用起来可以和orgmode一样吗?是不是lpy并没有使用ipython kernel? 我几乎是新手,希望用好orgmode做一些编程学习的笔记。还有请问以上两种方法能不能直接编辑以及导出.ipynb的方法?是不是配合ein才能直接.ipynb?谢谢。

@cxf

这三个emacs插件以及 jupyter notebook, jupyter lab 我都有在用。

  1. 如果你需要一个轻量,纯文本环境编辑 python,并且便于交互式运行的话,那就用 lpy。比如我的工作环境有时在远程的服务器上,这时我会使用 terminal emacs + lpy。lpy 是最轻量的,没有图片以及 markup,文件格式为 .py 文件。对我来说,它就类似于 ipython console,但是又可以记录脚本,不用每次都重新输入。

  2. 如果你的工作涉及编辑 ipynb 文件的话,那你的选择只能是 ein 或者 jupyter notebook/lab。我用 ein 更多一些,因为习惯 emacs 的编辑环境。但是有些情况又不得不用 jupyter notebook,比如生成交互式plot时。ein 不支持 js,所以不能支持 bokeh, plotly 这种 js 绘图。另外,使用 jupyter notebook 的一个优势是方便与同事/同行交流。

  3. 至于 ob-ipython 以及所有 orgmode 的插件,那又是完全另外一个 story 了。org src 代码块虽好,但是编辑补全等等其实并不方便。除非我必须要使用文学编程(多种语言+ org table)的时候,比如,写博客,做笔记等等,我会优先用它们。如果主要目标是生产的话,那我会优先使用前面两种方案。

另外,你在另外一个帖子中问我 lpy 和 spacemacs python layer 是否冲突。答案是不冲突,我就是和 python layer 一起用的,注意把依赖安装好。它是依赖 lispy 等包的。可惜我的配置包含很多 token 之类的不便于公开。不过配置很简单,稍微配置一下用默认的基本就可以了。

tl;dr

  1. lpy -> 轻量,调试代码
  2. ein -> 编辑 ipynb
  3. orgmode+ob-ipython -> 文学编程,笔记,博客

如果你主要记笔记用的话,我会推荐你结合 1 和 3,先在 py 文件里写,运行,调试。然后再放到 orgmode 代码块里。2的话,其实 py 和 ipynb 以及 orgmode 可以互转,但是那个话题三言两语讲不完,喜欢折腾的话自己搜一下 Google 吧。

希望我的文字能回答你的疑问。

9 个赞

这个包我试用了一下,还有不少 bug,需要时间完善。先关注了养鱼吧。。。

读了读lpy的readme, …没有案例.
这个package真活跃. GitHub - nnicandro/emacs-jupyter: An interface to communicate with Jupyter kernels.

还在用原生的ob-python…… ob-ipython 或 emacs-jupyter 有什么特别的优势么?我看doom-emacs现在更倾向emacs-jupyter,把 ob-ipython 标记为 DEPRECATED