Я столкнулся с этой ошибкой в более сложном приложении, которое я разрабатываю.Я выполняю программу на сервере Python и хочу прочитать первые доступные данные.А затем закройте его.Я делаю это для проверки некоторых настроек с сервера.
Моя проблема сводится к следующему:
- QProcess.waitForReadyRead () не возвращает и тайм-ауты, он должен возвращать True оченьбыстро
- Раньше все работало, я откатился на более старую ревизию, чтобы попытаться найти причину, по которой это сломалось сейчас, но она всегда есть, я действительно попробовал все, что мог придумать, поэтому я хочу знать,это нормальная проблема или, возможно, что-то, что может повлиять только на меня и вызвано моим окружением.
Это тест, который я написал, чтобы показать проблему, когда я ее выполняю, 3 первые проверки возвращают данныенемедленно, но последний тайм-аут, и я не получаю данных.
Это, конечно, не логично.В тесте, который я использовал wait, на моем сервере это просто функция выбора, она реализована с базовыми модулями в python.
from PyQt4 import QtCore
#FILE: 1.py
#print 'TEST'
#FILE: 2.py
# import time
#print 'TEST'
#time.sleep(100)
#FILE: 1.sh
# echo 'TEST'
#FILE: 2.sh
# echo 'TEST'
# sleep 100
proc0= QtCore.QProcess()
proc0.start('sh', ['./1.sh'])
proc0.waitForStarted()
proc0.waitForReadyRead(10000)
output0 = proc0.readAll()
proc1= QtCore.QProcess()
proc1.start('sh', ['./2.sh'])
proc1.waitForStarted()
proc1.waitForReadyRead(10000)
output1 = proc1.readAll()
proc2= QtCore.QProcess()
proc2.start('python', ['./1.py'])
proc2.waitForStarted()
proc2.waitForReadyRead(10000)
output2 = proc2.readAll()
proc3= QtCore.QProcess()
proc3.start('python', ['./2.py'])
proc3.waitForStarted()
proc3.waitForReadyRead(10000)
output3 = proc3.readAll()
print "0"
print output0.size()
print repr(output0.data())
print "1"
print output1.size()
print repr(output1.data())
print "2"
print output2.size()
print repr(output2.data())
print "3"
print output3.size()
print repr(output3.data())
proc0.close()
proc1.close()
proc2.close()
proc3.close()
Должен ли последний тест (proc3) работать так, как я описал?Есть ли обходной путь или исправление, которое позволило бы мне прочитать стандартный вывод данных на моем сервере python ...?Что это?