我的使用情形是这样的
- 用 org-mode 的表格记录了一些数据
- 使用 ob-ipython,将 org-mode 表格的数据读取到 python 中(换言之,运行代码块),数据格式为 pandas dataframe。我的理解 ob-ipython 会启动一个 ipython 进程
- 在一个 python buffer 使用 lpy,并将进程切换为上一步生成的 ipython 进程,这样就可以使用之前读入的表格数据。
- 在 python buffer 中进行数据分析,处理
- 用 ob-ipython 将数据以结果的方式输出到 org-mode buffer 中,可以美化并导出。
看起来好像很美好,但是卡壳在第三步了。比如上图中 kernel-none 是 ob-ipython 的默认进程,而 lispy-python-default 是 lpy 的默认进程,我曾经简单地以为我只要把 lpy 进程切换为 ob-ipython 进程就可以了,像下图这样,
为此我修改了 lispy 的函数:
(defun lispy-short-process-name (x)
(when (string-match "^\\(?:lispy-python-\\|kernel-\\)\\(.*\\)" (process-name x))
(match-string 1 (process-name x))))
但是显然并不行,切换以后一运行代码就卡死。我对这两个包的工作机理了解的都不深入,想请教一下论坛里的高手,出现这种情况的原因是什么呢?