# 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!