如何在 Emacs 的组织模式下执行非常简单的 Python 代码?
第一个例子工作正常,但是我不能让它给我最简单的计算结果:
; works
#+begin_src python
def foo(x):
if x>0:
return x+10
else:
return x-1
return foo(50)
#+end_src
#+RESULTS:
: 60
; does not work
#+begin_src python
1+1
#+end_src
#+RESULTS:
: None
; does not work
#+begin_src python
print(1+1)
#+end_src
#+RESULTS:
: None
我使用以下行设置组织模式:
;; enable python for in-buffer evaluation
(org-babel-do-load-languages
'org-babel-load-languages
'((python . t)))
;; all python code be safe
(defun my-org-confirm-babel-evaluate (lang body)
(not (string= lang "python")))
(setq org-confirm-babel-evaluate 'my-org-confirm-babel-evaluate)
最佳答案
有two ways获得
源代码块的结果 - output
和 value
。你把它们搞混了,所以才有了麻烦。
第一个 block 没问题。
修复第二个 block :
#+begin_src python :results value
return 1+1
#+end_src
修复第三 block :
#+begin_src python :results output
print 1+1
#+end_src
当输出模式为value
时,您必须return
。像你一样把它放在那里
with 1+1
不行。
在第三个中,您希望将结果打印输出,但您的默认 session
设置为 value
(我的默认为 output
btw)。
关于 org-confirm-babel-evaluate
的一点与问题无关。
我只是将它设置为 nil
。
关于python - Emacs 组织模式 : Executing simple python code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18598870/