Python组织模式的源代码块输出始终为“:无”


15

这是我的源代码块:

#+BEGIN_SRC python
print "hello"
#+END_SRC

输出始终为:

#+RESULTS:
: None

这是我的org-babel配置:

    (org-babel-do-load-languages
 'org-babel-load-languages
 '((python . t)
   (C . t)
   (calc . t)
   (latex . t)
   (java . t)
   (ruby . t)
   (scheme . t)
   (sh . t)
   (sqlite . t)
   (js . t)))

Python在我的PATH上,可以通过终端执行。

Emacs-lisp SRC块工作正常。

为什么我得到None代替hello

Answers:


16

这是babel如何处理某些语言的特性。 提供了有关python的一些详细信息,并且这里提供了完整的选项列表。有很多有用的。

基本上,取决于语言,有几种输出选项。有时,使用标准输出是有意义的(做什么print),对于其他语言(例如八度),则显示图像是有意义的。对于python,默认值为value,它显示代码的返回值,因此将您的print语句更改为return将产生预期的行为。

在某些情况下这不是很有用,因此可以通过添加:results output到源代码块的第一行来更改它。


14

在这种非常简单的情况下,我倾向于使用一种技巧,将其替换printreturn

#+BEGIN_SRC python
return "hello"
#+END_SRC

#+RESULTS:
: hello

但总的来说,更好的解决方案是使用:results output,如user2699所述。

#+BEGIN_SRC python :results output
print("hello")
#+END_SRC

#+RESULTS:
: hello

2
这不是黑客。:)
奥马尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.