2010-04-30 251 views
2

我们有一台Django应用程序运行在apache服务器(mod_python)上,需要调用一些r脚本的windows机器上。要做到这一点,通过os.system调用r是最简单的,但是当django进入os.system命令时,它会冻结。我也尝试过使用相同结果的子进程。不能在Django中运行os.system命令?

我们有一个可能相关的问题,因为Django只能访问它所在机器的文件系统,所有的网络驱动器似乎都是看不见的,这非常令人沮丧。

对这两个问题的任何想法(我假设它在这两个实例中是相同的限制)将不胜感激。

回答

1

而不是os.system,会RPy2满足您的需求?我用它和Django描述的类似的情况使用它,并且它工作得很好。

rpy2中的高级接口旨在方便Python程序员使用R. R对象作为Python实现的类的实例公开,R函数在很多情况下作为这些对象的绑定方法。

+0

我们尝试过rPy2,但是当它开始执行复杂的过程时,似乎有相当多的错误。从长远来看,我们可能会将所有脚本直接转换为Python代码,但现在单独的rscripts是我们准确处理数据的唯一保证方式。 – danspants 2010-04-30 02:08:43

+0

或者你的意思是从rpy2调用rscripts?我没有考虑过这个简单的解决方案! – danspants 2010-04-30 03:09:01

+0

右键 - 尝试'rpy2.robjects.source'函数来源脚本,但我想知道这是否会有效,如果它真的与某种网络驱动器问题有关? – ars 2010-04-30 05:26:02