Python app. Eroaster and "output = pipe[0].readlines()" trouble

Kevin nobody at tek.kom
Tue Oct 16 18:36:38 EDT 2001


I checked "cdrecord -scanbus" and it writes everything to
stdout.  So, I took out the "2>&1".  I got exactly the same
results, namely:

    Traceback (most recent call last):
      File "/usr/lib/python2.0/site-packages/gtk.py", line 125, in __call__
	ret = apply(self.func, a)
      File "/usr/lib/eroaster/main.py", line 1468, in DetectRecorder
	self.DetectSCSIDevice(deviceRecorder)
      File "/usr/lib/eroaster/main.py", line 1479, in DetectSCSIDevice
	output = pipe[0].readlines()
    IOError: [Errno 4] Interrupted system call

The line I think caused this is the "output = pipe[0].readlines()"
line in the following:

    # Detect SCSI-devices
    def DetectSCSIDevice(self, device):
	pipe = popen2.popen2("cdrecord -scanbus 2>&1")
	output = pipe[0].readlines()
	devicelist = []


Any more ideas?  What is "output = pipe[0].readlines()" supposed
to do?  How can I test that?  Thanks...


In article <mailman.1003264156.23280.python-list at python.org>,
 Ignacio Vazquez-Abrams <ignacio at openservices.net> writes:
> The problem is most likely the "2>&1" in the call to
> popen2(). Redirection is a shell function; popen*() just
> execute the process seperately, so cdrecord thinks that "2>&1"
> is a (bad) argument. It should use popen4() instead.

--
Unless otherwise noted, the statements herein reflect my personal
opinions and not those of any organization with which I may be affiliated.



More information about the Python-list mailing list