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 rpy-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rpy-list