Emacs Org Mode: Executing Simple Python Code
How can I execute very simple Python-Code in Emacs' Org Mode? The first example works fine, however I can't make it give me the result of simplest computations: ; works #+begin_src
Solution 1:
There are two ways of getting
the result of a source block - output
and value
. You mixed them up, hence the troubles.
First block is fine.
To fix the second block:
#+begin_src python :results valuereturn 1+1
#+end_src
To fix the third block:
#+begin_src python :results outputprint 1+1
#+end_src
When output mode is value
you must return
. Just putting it there like you did
with 1+1
won't do.
In the third one you want the result to be printed output, but your default session
setting is value
(mine defaults to output
btw).
And this bit about org-confirm-babel-evaluate
is kind of irrelevant to the question.
I just have it set to nil
.
Solution 2:
You may still face problems like blank lines cause error in function definition. The solution is given in original thread. I also posted below
(setq org-babel-python-command "ipython3 --no-banner --classic --no-confirm-exit")
;; use %cpaste to paste code into ipython in org mode
(defadvice org-babel-python-evaluate-session
(around org-python-use-cpaste
(session body &optional result-type result-params) activate)
"Add a %cpaste and '--' to the body, so that ipython does the right thing."
(setq body (concat "%cpaste\n" body "\n--"))
ad-do-it
(if (stringp ad-return-value)
(setq ad-return-value (replace-regexp-in-string "\\(^Pasting code; enter '--' alone on the line to stop or use Ctrl-D\.[\r\n]:*\\)""" ad-return-value))))
Post a Comment for "Emacs Org Mode: Executing Simple Python Code"