python - Emacs 组织模式 : Executing simple python code

标签 python emacs org-mode

如何在 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获得 源代码块的结果 - outputvalue。你把它们搞混了,所以才有了麻烦。

第一个 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/

相关文章:

python - Python 的稀疏矩阵乘法问题

python - Keras 模型通过编译但在运行时因值错误而崩溃

python - Flask 扩展要求模型字段具有特定约定

Emacs 中的 Java 模式参数缩进

emacs - 如何在 emacs( Markdown 模式)中自动填充括号中的行?

Emacs 以批处理模式将组织文件导出为 PDF

emacs - 我的印象笔记模式现在不能用了

python - Keras 模型仅适用于 Sigmoid 激活

python - 执行具有 "from __future__ import ..."的 AquaMacs 缓冲区

docker - 在 Emacs 中使用 org-mode 的 Docker 编程环境的文学编程设置