Ошибка конца данных при использовании PyRserve

Я вызываю файл сценария R из python, используя pyrserve. У меня есть резерв. В произвольных точках в R-скрипте pyrserve выдает ошибку и завершает работу:

Traceback (most recent call last):
  File "scriptV2.py", line 272, in <module>
    rConn.eval("source(file.PropensityFlow)")
  File "/Users/dipayanmaiti/Py3.3venv/lib/python3.3/site-packages/pyRserve/rconn.py", line 47, in decoCheckIfClosed
    return func(self, *args, **kw)
  File "/Users/dipayanmaiti/Py3.3venv/lib/python3.3/site-packages/pyRserve/rconn.py", line 119, in eval
    return rparse(src, atomicArray=atomicArray)
  File "/Users/dipayanmaiti/Py3.3venv/lib/python3.3/site-packages/pyRserve/rparser.py", line 539, in rparse
    return rparser.parse()
  File "/Users/dipayanmaiti/Py3.3venv/lib/python3.3/site-packages/pyRserve/rparser.py", line 349, in parse
    self.lexer.readHeader()
  File "/Users/dipayanmaiti/Py3.3venv/lib/python3.3/site-packages/pyRserve/rparser.py", line 94, in readHeader
    self.responseCode = struct.unpack(b'<i', self.read(3) + b'\x00')[0]
  File "/Users/dipayanmaiti/Py3.3venv/lib/python3.3/site-packages/pyRserve/rparser.py", line 149, in read
    raise EndOfDataError()
pyRserve.rparser.EndOfDataError

Я поставил rserv.conf к следующему:

maxinbuf 20000000
maxsendbuf 0

Кто-нибудь знает, почему это происходит? Это похоже на некоторую проблему с буфером, потому что скрипт R запускается сам по себе.

1 ответ

Это поздний ответ, но в таких ситуациях полезно запускать Rserve в режиме отладки, чтобы его вывод можно было отслеживать в отдельной оболочке.

R CMD Rserve.dbg

В некоторых редких случаях я видел, как Rserve выводит предупреждения на консоль, и когда это произошло, команда, отправленная через pyRserve, не возвращала никакого значения из Rserve - что привело к "EndOfDataError" выше.

Другие вопросы по тегам