[Zope] running C/Fortran progz via command line ?

Chris McDonough chrism@zope.com
Tue, 09 Oct 2001 18:29:42 -0400


Hi Lee,

This is eminently possible.  Use an External Method (see 
http://www.zope.org/Members/michel/ZB/ScriptingZope.dtml , "Using 
External Methods").  Uisng an external method allows you to make use of 
Python without any security restrictions (unlike a Python Script).  Then 
use one of Python's ways to start a process and obtain the output of the 
process.  "os.popen" is one of these ways, e.g.:

import os
def externalMethod(self):
    args = "foo bar"
    p = os.popen('/do/something %s ' % args)
    return p.readlines()

Note that this mechanism for interfacing with external processes is both 
prone to security and performance problems, but done carefully and 
prudently it's not a big issue.

For other ways to interface python with external processes, pick up 
"Learning Python" (O'Reilly).

Lee Philip Reilly wrote:

> Hi,
> 
> I wonder if anyone could perhaps answer a question for me regarding Zope
> and it's ability to inter(face/act) with external applications - running
> on the same (linux) machine. I am developing a web application and one
> of it's functions requires it to be able to execute programs (mainly
> written in c, but also Fortran) via command lines including all the
> required arguments;
> 
>     e.g. ./do-something -i1 file1.txt - i2 file2.txt -o results.txt
> 
> In some cases the program output would have to be obtained (and returned
> to Zope for processing), and in others it would not - some of the
> calculations take a few hours - in which case the results would be
> mailed directly to the user when complete. I anticipate the flow of
> things will be as follows:
> 
> 1-User will submit some data / upload files via web forms. 
> 2-Zope will then use this data and then generate a command to execute an
> external program running on the same machine. 
> 3-The user can then be notified if the program executed correctly, and
> if applicable, return any data.
> 
> Can Zope be of any use here? Is the above possible? Is anyone doing
> something similar at the present time? If anyone could provide me with
> any information, I would greatly appreciate it.
> 
> - Best regards,
> 
> Lee Reilly
> 
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - 
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )
> 


-- 
Chris McDonough                    Zope Corporation
http://www.zope.org             http://www.zope.com
"Killing hundreds of birds with thousands of stones"