最近在上相关的课程,所以需要折腾一下环境(轻度使用)。
我看到有好几个包:
- ein
- emacs-jupyter
- lpy
- …
现在大家比较常用的 workflow 是什么的呢
最近在上相关的课程,所以需要折腾一下环境(轻度使用)。
我看到有好几个包:
现在大家比较常用的 workflow 是什么的呢
第二个好用, 其他不了解, 反正我看大佬 Kitchin 也用
最多用vterm开个ipython
其它可能都不如jupyterlab架起来后xwidget连进去使用方便(单独的ipynb我推荐ein。
有一篇文章总结得很全面,可以根据自己的需求尝试一下,或许会有帮助。
而我目前既没采用 emacs-jupyter
,也没有用 ein
,而是使用 Jupytext (Jupyter的插件)同步一份纯 Python 文件(因此会有 .ipynb
和 .py
两个文件),然后在 Emacs 里面编辑、在网页端操作 Jupyter 来运行。
优势如下:
revert-buffer
,而 Jupyter 也是需要一个 Reload,但都是一个快捷键的事);编辑 ipynb 文件就使用 code-cells
包,该包内部会调用 jupytext
自动将 ipynb 转换成 python 文件,然后在退出 emacs 后自动将 py 文件转换成 ipynb 文件。在写 python 代码的时候,我使用自己写的一个简单的 wrapper,通过 vterm 启动 ipython 然后将代码发送到 ipython 进行交互。
使用 orgmode,这个时候可以使用 emacs-jupyter
包,该包提供了一个 org-babel 的环境来调用 jupyter-kernel。
使用 quarto
软件 和 markdown-mode
将基于 markdown 方言的纯文本编译(运行代码并插入输出,图片等)后生成 ipynb,或者是 latex 生成的 pdf 等等任意格式。
最后,不建议使用基于 poly-mode
开发的包,作者已经处于半放弃维护的状态,同时该包也有很多小 bug,尤其是 evil 用户使用体验会很差。
你的代码可以分享一下吗?我用 lpy,不是很好用。
我直接用 Google Colab 在线写的,本地不安裝 python 环境
你去看 my-apps-autoloads.el
的 164-265 行。因为命令都是通过宏生成的,所以不好找它们的定义。
在运行jupyter-run-repl 时出现jupyter-session-with-random-ports: jupyter kernel
failed to show connection file path的问题?
设置如下:
(use-package jupyter
;; :elpaca t
:init
(org-babel-do-load-languages
'org-babel-load-languages
(append org-babel-load-languages '((jupyter . t))))
(org-babel-jupyter-override-src-block "python")
(setq org-babel-default-header-args:jupyter-python '((:async . "yes")
(:session . "py")
(:kernel . "base"))))
(use-package code-cells
:config
(setq code-cells-convert-ipynb-style '(("pandoc" "--to" "ipynb" "--from" "org")
("pandoc" "--to" "org" "--from" "ipynb")
org-mode))
(add-hook 'python-mode-hook 'code-cells-mode-maybe)
(with-eval-after-load 'code-cells
(let ((map code-cells-mode-map))
(define-key map (kbd "M-p") 'code-cells-backward-cell)
(define-key map (kbd "M-n") 'code-cells-forward-cell)
(define-key map (kbd "C-c C-c") 'code-cells-eval)
;; Overriding other minor mode bindings requires some insistence...
(define-key map [remap jupyter-eval-line-or-region] 'code-cells-eval)))
)
mac, [email protected]
你这个就是jupyter不在PATH里面吧。。。应该和你的配置没什么关系。
弱弱问一下,reload 怎么设置?
我建议用Pants将Jupyter打包变成pex,然后再和Emacs做集成。
可以参考我的两次技术分享:
这边由一堆用Pants写的模板工程可以参考:
jupyter 还是乖乖用web吧,对自己好点 别为难自己
我直接用pandoc一键全部转成 orgmode, 用org-babel 慢慢的变成活在org里