emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Fwd: Fwd: run python from org, draft


From: Gary Oberbrunner
Subject: Re: [O] Fwd: Fwd: run python from org, draft
Date: Sun, 31 Mar 2013 16:04:31 -0400




On Fri, Mar 29, 2013 at 4:58 PM, Andreas Röhler <address@hidden> wrote:
Am 29.03.2013 21:10, schrieb Gary Oberbrunner:

On Fri, Mar 29, 2013 at 11:29 AM, Andreas Röhler <
address@hidden> wrote:

IMO org-babel should be able to run source code as is.
If an org-mode specific modification is required at such a trivial form,
what to expect wrt complex environments?

BTW this fails also:

#+begin_src python
print "Hello, world!"
#+end_src python

#+RESULTS:
: None


As the worg doc says, if you want to capture stdout rather than a value,
you need :results output.  The default is :results value (which in session
mode is the last _expression_ executed, and in non-session mode is whatever
you return().)

I agree it is a little odd, but given how python works it's not clear to me
how to improve it.

Hi Gary,

if someone wants the value of the last _expression_ returned, it's much simpler to write Python/native
language, than cryptic, lately documented org-mode flags.
That's a kind of re-inventing a programming-language, also redundant.

 Specifically, in non-session mode, the python
interpreter is run as a separate process and fed the input (with some stuff
around it).  There is no way for python to get "the last value" in
non-interactive mode,

No? Any program may output any of it's values.

so instead ob-python wraps your code in a function,
then calls it, and writes the return value of that function to the temp
file.  Conversely in session mode, each block is talking to the same
interactive python interpreter, just what you get if you type 'python' at
the shell.  So using return() there doesn't make any sense, and wouldn't
work.

The use of "return" doesn't depend from interactive mode.
It's related to a function.

Seen from org-user, IMO any back-ends interactive mode or not is not of interest.
":session" mimics and/or probably uses it, but it would also possible to implement it as a file, loading
previous values from a storage.

I don't see any way to make them both behave the same way.

Probably most useful at this list is to define which feature/behavior is most convenient.
Why people use this mode, what they want to do.

I think the very most useful thing would be for you to code up what you're thinking of, and show it here.
 
--
Gary

reply via email to

[Prev in Thread] Current Thread [Next in Thread]