I want to be able to call R from python scripts that are being executed
via lib-apache2-mod-python. Should this be doable?
My python script can access some R functionality but it is very limited.
It *appears* that only the functionality in the base R package is being
loaded.
from mod_python import apache
import rpy2
from rpy2 import robjects
import math
import array
def handler(req):
r = robjects.r
r("y <- (1:10)")
r("x <- (1:10)")
r('jpeg("/var/www/apache2-default/images/testplot.jpg")')
#r.plot(r.runif(10),y,xlab="runif",ylab="foo/bar",col="red")
#r._dotter = True
#r.dev_off()
req.content_type = 'html'
req.write("<HTML>")
req.write("<BODY>")
req.write("Hello beautiful World!<BR>")
req.write('<img src="/apache2-default/images/test123.jpg" />')
req.write("</BODY>")
req.write("</HTML>")
return apache.OK
When I access the page, mod_pthon generates the following error
information:
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line
1537, in HandlerDispatch
default=default_handler, arg=req, silent=hlist.silent)
File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line
1229, in _process_target
result = _execute_target(config, req, object, arg)
File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line
1128, in _execute_target
result = object(arg)
File "/var/www/apache2-default/test_python/mptest.py", line 16, in
handler
r('jpeg("/var/www/apache2-default/images/testplot.jpg")')
File "/usr/lib/python2.5/site-packages/rpy2/robjects/__init__.py",
line 501, in __call__
res = self.eval(p)
File "/usr/lib/python2.5/site-packages/rpy2/robjects/__init__.py",
line 381, in __call__
res = super(RFunction, self).__call__(*new_args, **new_kwargs)
RRuntimeError: Error in eval(expr, envir, enclos) : could not find
function "jpeg"
------------------------
If I modify my python script to call the R library() function, I get a
different error message.
def handler(req):
r = robjects.r
r("library()")
.
.
.
Generates:
Traceback (most recent call last):
File
"/usr/lib/python2.5/site-packages/mod_python/importer.py", line
1537, in HandlerDispatch
default=default_handler, arg=req, silent=hlist.silent)
File
"/usr/lib/python2.5/site-packages/mod_python/importer.py", line
1229, in _process_target
result = _execute_target(config, req, object, arg)
File
"/usr/lib/python2.5/site-packages/mod_python/importer.py", line
1128, in _execute_target
result = object(arg)
File "/var/www/apache2-default/test_python/mptest.py", line
13, in handler
r("library()")
File
"/usr/lib/python2.5/site-packages/rpy2/robjects/__init__.py",
line 501, in __call__
res = self.eval(p)
File
"/usr/lib/python2.5/site-packages/rpy2/robjects/__init__.py",
line 381, in __call__
res = super(RFunction, self).__call__(*new_args,
**new_kwargs)
RRuntimeError: Error in gzfile(file, "rb") : invalid 'encoding'
argument
Any ideas?
--eric
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
rpy-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rpy-list