[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Babel] [Orgmode] Strange bug in org-babel with python
From: |
Darlan Cavalcante Moreira |
Subject: |
[Babel] [Orgmode] Strange bug in org-babel with python |
Date: |
Tue, 10 Nov 2009 20:26:51 -0300 |
User-agent: |
Wanderlust/2.15.6 (Almost Unreal) Emacs/23.1 Mule/6.0 (HANACHIRUSATO) |
Hello org-users,
Today I was bitten by a weird behavior when executing some python
blocks with org-babel that really confused me, but after some trying
and error I was able to isolate the problem.
When a block has an import statement such as
,----
| from some_module import *
`----
it works with :results output, but not with :results value.
The content of simple file to reproduce the problem is showed below
--------------- Cut here -----------------------------------
* Test Org-babel
#+begin_src python :tangle test :results silent
def double_input(a):
return a*2
#+end_src
#+begin_src python :results value
import test
def times_four(a):
return test.double_input(a)*2
if __name__ == '__main__':
print "Value is %s" % times_four(10)
times_four(10)
#+end_src
#+begin_src python :results value
from test import *
def times_four(a):
return double_input(a)*2
if __name__ == '__main__':
print "Value is %s" % times_four(10)
times_four(10)
#+end_src
--------------- End of cut ---------------------------------
To reproduce the problem, tangle the file to create test.py from the
first block. Then executing the second block (which has no import *)
works with either :results output or :results value.
However, the third block, (which uses import *) only works if executed
with :results output. I can't see the reason for this since the code
is right and works in a python buffer as expected.
- Darlan
- [Babel] [Orgmode] Strange bug in org-babel with python,
Darlan Cavalcante Moreira <=