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: Andreas Röhler
Subject: Re: [O] Fwd: Fwd: run python from org, draft
Date: Fri, 29 Mar 2013 21:58:34 +0100
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130307 Thunderbird/17.0.4

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.

Cheers,

Andreas




reply via email to

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