emacs-orgmode
[Top][All Lists]
Advanced

[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






reply via email to

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