Revision history [back]

How to make pygraphviz and sage compatible?

Hi,

I would like sage to help me when I am working with (un)directed graphs and quivers, and so on. After having played around with various possibilities, I would like to convert some stuff into a string and then let sage print something like a .ps - file that contains an image from dot (or something similar to this).

Unfortunately, I came across the following issue(s) and have no idea what to do now. With the sage version I installed, there is python 2.x as a delivered package. But it seems that sage complains about python3, what doesn't make sense to me.

Could you help me understand and solve the following:

boehmler@boehmler-X55A:~/Schreibtisch/bb/sage-6.9-x86_64-Linux$./sage ┌────────────────────────────────────────────────────────────────────┐ │ SageMath Version 6.9, Release Date: 2015-10-10 │ │ Type "notebook()" for the browser-based notebook interface. │ │ Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ sage: import networkx as nx sage: import matplotlib.pyplot as plt sage: import matplotlib.image as mpimg sage: from cStringIO import StringIO sage: g = nx.dodecahedral_graph() sage: d = nx.to_pydot(g) AttributeError Traceback (most recent call last) <ipython-input-6-0d33c400a5cf> in <module>() ----> 1 d = nx.to_pydot(g) AttributeError: 'module' object has no attribute 'to_pydot' sage: d = nx.to_agraph(g) ImportError Traceback (most recent call last) <ipython-input-7-d9254026fb59> in <module>() ----> 1 d = nx.to_agraph(g) /home/boehmler/Schreibtisch/bb/sage-6.9-x86_64-Linux/local/lib/python/networkx/drawing/nx_agraph.pyc in to_agraph(N) 132 raise ImportError('requires pygraphviz ', 133 'http://networkx.lanl.gov/pygraphviz ',  --> 134 '(not available for Python3)') 135 directed=N.is_directed() 136 strict=N.number_of_selfloops()==0 and not N.is_multigraph()  ImportError: ('requires pygraphviz ', 'http://networkx.lanl.gov/pygraphviz ', '(not available for Python3)') sage: Exiting Sage (CPU time 0m3.33s, Wall time 56m28.80s). After typing boehmler@boehmler-X55A:~/Schreibtisch/bb/sage-6.9-x86_64-Linux$ sudo -H pip install pygraphviz

I get the message

Wall -Wstrict-prototypes -fPIC -I/usr/include/graphviz -I/usr/include/python2.7 -c pygraphviz/graphviz_wrap.c -o build/temp.linux-x86_64-2.7/pygraphviz/graphviz_wrap.o pygraphviz/graphviz_wrap.c:130:21: fatal error: Python.h: Datei oder Verzeichnis nicht gefunden # include <python.h> ^ compilation terminated. error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

----------------------------------------


Command "/usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-6yZh3l/pygraphviz/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-a6o8Fg-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-6yZh3l/pygraphviz

in the end. I would be grateful for any hints how to solve / fix this.

Thanks for the help!