Search code examples
pythonbroken-pipe

Python: Broken Pipe Error For PyNomo Example (in function Nomographer)


I am using pycharm on Python 2.7. I have installed PyNomo. I am trying to run this small example from the official site. Code is available on the link, I have simply copy pasted it. I get the following error:

Aligning with tag A
Traceback (most recent call last):
  File "/home/darshil/Desktop/Caltech Summer Internship/Radiation Ononcology Data/DB/rad3/pynomo_temp.py", line 71, in <module>
    Nomographer(main_params)
  File "/usr/local/lib/python2.7/dist-packages/pynomo/nomographer.py", line 203, in __init__
    wrapper.draw_nomogram(c,params['post_func'])
  File "/usr/local/lib/python2.7/dist-packages/pynomo/nomo_wrapper.py", line 213, in draw_nomogram
    block.draw(canvas)
  File "/usr/local/lib/python2.7/dist-packages/pynomo/nomo_wrapper.py", line 445, in draw
    atom.draw(canvas)
  File "/usr/local/lib/python2.7/dist-packages/pynomo/nomo_wrapper.py", line 2503, in draw
    axis_appear=p,base_start=base_start,base_stop=base_stop)
  File "/usr/local/lib/python2.7/dist-packages/pynomo/nomo_axis.py", line 123, in __init__
    self.draw_axis(canvas)
  File "/usr/local/lib/python2.7/dist-packages/pynomo/nomo_axis.py", line 1067, in draw_axis
    c.text(x,y,ttext,attr+[text_color])
  File "/usr/local/lib/python2.7/dist-packages/pyx/canvas.py", line 324, in text
    return self.insert(self.texrunner.text(x, y, atext, *args, **kwargs))
  File "/usr/local/lib/python2.7/dist-packages/pyx/text.py", line 1194, in text
    self.execute(expr, self.defaulttexmessagesdefaultrun + self.texmessagesdefaultrun + texmessages)
  File "/usr/local/lib/python2.7/dist-packages/pyx/text.py", line 951, in execute
    self.defaulttexmessagesstart + self.texmessagesstart)
  File "/usr/local/lib/python2.7/dist-packages/pyx/text.py", line 1005, in execute
    self.texinput.write(self.expr)
IOError: [Errno 32] Broken pipe
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/local/lib/python2.7/dist-packages/pyx/text.py", line 748, in _cleantmp
    texrunner.texinput.write("\n\\end\n")
IOError: [Errno 32] Broken pipe
Error in sys.exitfunc:
Traceback (most recent call last):
  File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/local/lib/python2.7/dist-packages/pyx/text.py", line 748, in _cleantmp
    texrunner.texinput.write("\n\\end\n")
IOError: [Errno 32] Broken pipe

Process finished with exit code 1

The error is in the final line of the code:

Nomographer(main_params)

I have looked at other questions with "broken pipe error": here,here, and here. But none of them are helpful to me.

Any indication on how to solve would be very helpful.


Solution

  • PyNomo uses a TeX installation to typeset text. Maybe this is missing resulting in a broken pipe. You need to be able to run a file hello.tex with the content Hello, world!\bye on a command line tex hello.tex. It should result in a file hello.dvi. If not you need to install a TeX distribution like TeXLive.