Running a program from another program.

Stephen Hansen me+list/python at ixokai.io
Thu Jun 17 17:48:06 EDT 2010


On 6/17/10 2:40 PM, Laurent Verweijen wrote:
> Op donderdag 17-06-2010 om 14:36 uur [tijdzone -0700], schreef Stephen
> Hansen: 
>> On 6/17/10 2:09 PM, Laurent Verweijen wrote:
>>> It just gives me an empty string.
>>>
>>> Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
>>> [GCC 4.4.3] on linux2
>>> Type "help", "copyright", "credits" or "license" for more information.
>>>>>> from asynchronous import *
>>>>>> p = Popen(["python", "increment.py"], stdin=PIPE, stdout=PIPE)
>>>>>> send_all(p, "5\n")
>>>>>> recv_some(p)
>>> ''
>>>>>> send_all(p, "6\n")
>>>>>> recv_some(p)
>>> ''
>>
>> Yes, that's how it signals the same situation. The point is: your
>> subprocess isn't outputting anything. You sure its not crashing out, for
>> instance?
>>
> 
> No, since it responds to the keyboard:

That doesn't really prove the point. There's all kinds of things that
can go wrong when you switch how you run a program.

Wrap your increment.py in like:

import sys
import traceback

try:
   ...
except:
   print >>sys.stderr, traceback.format_exc()

Then add the arg in your Popen, stderr=sys.stderr

And see if any exception is thrown.

The original error you got, and the empty string from the recipe, both
mean interpret.py is not returning any output. Why? Maybe its erroring
out-- the subprocess context is different then the context of running a
program from the keyboard. Or maybe you're not sending:

In your other thread you include an actual traceback:

Traceback (most recent call last):
  File "subchronous_test.py", line 5, in <module>
    send_all(str(p), n)
  File "/home/Somelauw/asynchronous.py", line 145, in send_all
    while len(data):
TypeError: object of type 'int' has no len()

The first argumetn to send_all should be the actual Popen subclass. The
second should be a string to send. I think that line really is intended
to be:

send_all(p, str(n)) # assuming 'n' is say, the number 5.

-- 

   Stephen Hansen
   ... Also: Ixokai
   ... Mail: me+list/python (AT) ixokai (DOT) io
   ... Blog: http://meh.ixokai.io/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 487 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/python-list/attachments/20100617/765783dc/attachment-0001.sig>


More information about the Python-list mailing list