On 5 mrt, 21:40, "Martin P. Hellwig" <martin.hell...@dcuktec.org> wrote: > On 03/05/10 20:09, wongjoek...@yahoo.com wrote: > > > > > On 5 mrt, 21:02, "Martin P. Hellwig"<martin.hell...@dcuktec.org> > > wrote: > >> On 03/05/10 19:45, wongjoek...@yahoo.com wrote: > > >>> On 5 mrt, 20:40, "Martin P. Hellwig"<martin.hell...@dcuktec.org> > >>> wrote: > >>>> On 03/05/10 19:21, wongjoek...@yahoo.com wrote: > >>>> <cut os.fork problem> > >>>> Any specific reason why threading.Thread or multiprocessing is not > >>>> suitable to solve your problem? > > >>>> -- > >>>> mph > > >>> Because I got a memory leak in my function f(). It uses scipy, numpy, > >>> pylab, and I am not planning to solve the memory leak because its too > >>> complicated. So I thought of just calling the function then when it is > >>> finished the process is gone and all memory is released. With > >>> threading I don't think I would solve this problem. I am not sure > >>> though. > > >> I would be surprised if you can't do the same with > >> subprocess/multiprocessing, since you seem to know how to identify the > >> memory leak it shouldn't be a problem scripting out a test to see if it > >> works this way. I would be interested though in your findings. > > >> -- > >> mph > > > I can't use multiprocessing module since it comes only with python 2.6 > > and I am bound to python2.4. But subprocess does exist in python2.4, > > but the question now is, how do I achieve that ? Any example ? > > Sure, for example if I want to check the openssl version (didn't specify > I need to provide a useful example :-) > > I would normally do on the command line: > [mar...@aspire8930 /usr/home/martin/Desktop]$ /usr/bin/openssl version > OpenSSL 0.9.8k 25 Mar 2009 > > The python subprocess equivalent is: > [mar...@aspire8930 /usr/home/martin/Desktop]$ python > Python 2.6.4 (r264:75706, Jan 31 2010, 20:52:16) > [GCC 4.2.1 20070719 [FreeBSD]] on freebsd8 > Type "help", "copyright", "credits" or "license" for more information. > >>> import subprocess as _sp > >>> ssl_version = _sp.Popen(['/usr/bin/openssl', 'version'], > stdout=_sp.PIPE) > >>> print(ssl_version.stdout.readlines()) > ['OpenSSL 0.9.8k 25 Mar 2009\n'] > >>> quit() > [mar...@aspire8930 /usr/home/martin/Desktop]$ > > If you get any error in the Popen part, you probably did not use the > full path or an illegal parameter. > > If you get a long wait in the readlines part, this usually means that > there is either nothing written to stdout or something is still being > written (I am not sure about this part though, it has been a while). > > hth > -- > mph
Yes, I saw this example also before. HOwever what I want is to call an internal function which gets a reference of another internal function as input and not calling an external program. Do you have any example on that with subprocess module ? Thanks. -- http://mail.python.org/mailman/listinfo/python-list