bufsize must be an integer in subprocess.Popen

Shgck shgck at pistache.land
Mon Feb 23 07:22:18 EST 2015


On 23/02/2015 13:13, Robert Clove wrote:
> Hi All,
>
> I am using the Linux system with python, i am running the following script
>
> #!/usr/bin/python
>
>
>
> import threading
>
> import time
>
> import sys
> import subprocess
> import datetime
> import os
> import time
> import logging
>
>
>
> proc1=subprocess.Popen("/root/Desktop/abc.py","64","abc",shell=True,stdout=subprocess.PIPE,
> stderr=subprocess.PIPE)
>
>
> In this script i am calling the other script named abc.py which is
> located on the desktop with 64 and abc as its arguments
> I am getting the following error
> File "/usr/lib64/python2.6/subprocess.py", line 589, in __init__
>      raise TypeError("bufsize must be an integer")
> TypeError: bufsize must be an integer
>
>
> Can you tell me why and whats the sol?

Hi, the parameter list should be a list of strings, not several unpacked 
strings :

     command = ["/root/Desktop/abc.py","64","abc"]
     proc1 = subprocess.Popen(command, shell=True, 
stdout=subprocess.PIPE, stderr=subprocess.PIPE)

Also, be sure to use a shebang like "#!/usr/bin/env python" at the 
beginning of abc.py or your environment may be unable to find out that 
you want to execute that script with Python. Or better, you can call 
that script directly with Python :

     command = ["python","/root/Desktop/abc.py","64","abc"]





More information about the Python-list mailing list