From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?ISO-8859-15?Q?Andreas_R=F6hler?= Subject: Re: python sessions Date: Wed, 20 Mar 2013 07:44:43 +0100 Message-ID: <51495ADB.7020609@easy-emacs.de> References: <16146.1363748839@alphaville> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([208.118.235.92]:45288) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UICkW-0005CE-Ud for emacs-orgmode@gnu.org; Wed, 20 Mar 2013 02:43:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UICkV-0003hf-Ov for emacs-orgmode@gnu.org; Wed, 20 Mar 2013 02:43:48 -0400 Received: from moutng.kundenserver.de ([212.227.17.9]:57900) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UICkV-0003hK-FJ for emacs-orgmode@gnu.org; Wed, 20 Mar 2013 02:43:47 -0400 In-Reply-To: <16146.1363748839@alphaville> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Am 20.03.2013 04:07, schrieb Nick Dokos: > John Hendy wrote: > >> On Tue, Mar 19, 2013 at 4:40 PM, Gary Oberbrunner wrote: >>> I must be failing to understand something. I'm running Emacs 24.3 on >>> Windows, with latest trunk org-mode. I can't get python functions to >>> persist across blocks in session mode. Here's my foo.org: >>> >>> =============== >>> >>> * My Document >>> #+BEGIN_SRC python :exports results :results output :session >>> def foo(x): >>> return x+1 >>> print "hi" >>> #+END_SRC >>> >>> #+RESULTS: >>> : hi >>> >>> #+BEGIN_SRC python :exports results :results output :session >>> print foo(100) >>> print "bye" >>> #+END_SRC >>> >>> ======================== >>> >>> In session mode, shouldn't foo be defined in the second python block? When >>> I export this, I get "NameError: name 'foo' is not defined" >>> >>> I may be doing something wrong, because if I name my python session, I never >>> see a buffer of that name, and I expected to. Any help? >>> >>> -- >>> Gary >> >> You should probably post your babel configuration from .emacs. This >> works for me (mostly). I'm using python 3.3 and so the print function >> has changed to requiring parentheses. I can switch to a buffer called >> *Python*, however, and =print("hi")= works fine. >> >> If I change to =print(foo(100))=, I get 101 in the #+RESULTS block. >> > > I don't - I get the same error as Gary. > > And looking at the code of org-babel-python-initiate-session-by-key, > I don't understand how it's supposed to work: python-buffer is nil > to begin with; the cond takes the first branch and starts a python session. > When we come to > > (setq org-babel-python-buffers > (cons (cons session python-buffer) > (assq-delete-all session org-babel-python-buffers))) > > python-buffer is still nil, so we are cooked. > > Maybe python-buffer was set as a side-effect of run-python in earlier > versions of emacs? If so, it does not seem to be the case now. > > Nick > > Org-mode version 8.0-pre (release_8.0-pre-144-g855dcf.dirty @ /home/nick/elisp/org-mode/lisp/) > GNU Emacs 24.3.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.4) of 2012-12-29 on alphaville > > AFAIU :session is broken, because Python shell as opened by run-python or py-shell isn't used by ob-babel. Seems ob-babel sends it's code w/ an own shell command, thus opening a new python shell internally every time. Did :session ever work? Then I might be wrong with this comment. Andreas