如果我使用这个 block
#+BEGIN_SRC python :results file
from pylab import *
plot(rand(10))
savefig('images/test.png')
return 'images/test.png'
#+END_SRC
然后“结果” block 向我显示了该图的内联版本。
如果现在我切换到这个 block
#+BEGIN_SRC python :session test :results file
from pylab import *
plot(rand(10))
savefig('images/test.png')
return 'images/test.png'
#+END_SRC
然后结果 block 不显示内联图,但是这个
| <matplotlib.lines.Line2D | object | at | 0x35c0650> |
使用 session 对我来说是强制性的,因为我需要多个 block 来共享变量。
我的方法明显有问题吗?
最佳答案
根据 org-mode documentation ,如果代码正在 session 中运行,则必须删除return
。
#+BEGIN_SRC python :session test :results file
from pylab import *
plot(rand(10))
savefig('images/test.png')
'images/test.png'
#+END_SRC
#+RESULTS:
[[file:images/test.png]]
因为“返回的结果是解释器执行的最后一次评估的结果。”
关于org-mode babel python session 和内联图像不兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16133428/