Bugs item #2776713, was opened at 2009-04-20 16:24
Message generated for change (Comment added) made by xiaoniao
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=453021&aid=2776713&group_id=48422
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: rpy2
Status: Open
Resolution: Fixed
Priority: 5
Private: No
Submitted By: Daniel Yuan (xiaoniao)
Assigned to: lgautier (lgautier)
Summary: ungraceful quit from R
Initial Comment:
I was surprised by the following behavior on quitting an R session in rpy2
(v2.0.3)
xn...@work:~> python
Python 2.5.2 (r252:60911, Nov 26 2008, 00:44:29)
[GCC 4.0.1 (Apple Inc. build 5490)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import rpy2.robjects as robjects
>>> r = robjects.r
>>> print r('a <- 1')
[1] 1 ## : fine
>>> print r('q(save="no")') ## : problem:
xn...@work:~> ## : dumped out of both R and python
Is there a way to quit R and return to the python interpreter?
Thanks.
----------------------------------------------------------------------
Comment By: Daniel Yuan (xiaoniao)
Date: 2009-07-02 09:09
Message:
I found 'setCleanUp' in 'rpy2/rpy/rinterface/', in both '__init__.py' and
'rinterface.c'. Where would I define the callback? I noticed that the call
to 'setCleanup' in '__init__.py' is commented out.
----------------------------------------------------------------------
Comment By: lgautier (lgautier)
Date: 2009-07-02 02:43
Message:
To prevent R from quitting, you can *set a "cleanup" callback* with
setCleanUp.
(to know more, there is unfortunately not more doc than the source code at
the moment)
----------------------------------------------------------------------
Comment By: Daniel Yuan (xiaoniao)
Date: 2009-07-01 23:52
Message:
Sorry to take so long to reply.
I tried the above cmds with build 674 of version 2.1-dev. Unfortunately
python still quits abruptly:
xn...@work:~/tmp/rpy2> python
Python 2.5.2 (r252:60911, Nov 26 2008, 00:44:29)
[GCC 4.0.1 (Apple Inc. build 5490)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import rpy2.robjects as robjects
>>> r = robjects.r
>>> print r('a <- 1')
[1] 1
>>> print r('q(save="no")')
Bus error
xn...@work:~/tmp/rpy2>
I think the appropriate behavior would be to print nothing and to render
'r' unavailable while retaining it in the namespace, like a closed File
object or database cursor.
Ideally one could start another R process by, say, reloading the robjects
module. But first things first.
Thanks.
----------------------------------------------------------------------
Comment By: lgautier (lgautier)
Date: 2009-06-22 17:00
Message:
Version 2.1-dev is providing a callback mechanism to control what is
happening upon R exit.
It is currently experimental, but trying it early may help having it do
what you would like it to do.
----------------------------------------------------------------------
Comment By: Daniel Yuan (xiaoniao)
Date: 2009-04-20 23:40
Message:
ok. But just to be clear, the issue quite definitely dumps me out of the
python interpreter and into the bash shell.
I forgot to mention: this is R v2.8-0.
----------------------------------------------------------------------
Comment By: lgautier (lgautier)
Date: 2009-04-20 22:05
Message:
It's an issue (and will remain so until something get worked out, possibly
using ptr_R_CleanUp() ).
PS: You do not appear to ever "leave the Python interpreter" (so need to
return to it) in your example.
PPS: Bug reports are for bugs, questions are answered on the mailing-list
;-)
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=453021&aid=2776713&group_id=48422
------------------------------------------------------------------------------
_______________________________________________
rpy-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rpy-list