AttributeError: 'module' object has no attribute 'graphviz_layout' with networkx 1.11
<p>I'm trying to draw some DAGs using networkx 1.11 but I'm facing some errors, here's the test:</p>

<pre><code>import networkx as nx

print nx.__version__

G = nx.DiGraph()
G.add_node(1,level=1)
G.add_node(2,level=2)
G.add_node(3,level=2)
G.add_node(4,level=3)

G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(2,4)

import pylab as plt
nx.draw_graphviz(G, node_size=1600, cmap=plt.cm.Blues,
                 node_color=range(len(G)),
                 prog='dot')
plt.show()
</code></pre>

<p>And here's the traceback:</p>

<pre><code>Traceback (most recent call last):
  File "D:\sources\personal\python\framework\stackoverflow\test_dfs.py", line 69, in &lt;module&gt;
    prog='dot')
  File "d:\virtual_envs\py2711\lib\site-packages\networkx\drawing\nx_pylab.py", line 984, in draw_graphviz
    pos = nx.drawing.graphviz_layout(G, prog)
AttributeError: 'module' object has no attribute 'graphviz_layout'
</code></pre>

<p>I'm using python 2.7.11 x64, networkx 1.11 and I've installed <a href="http://www.graphviz.org/Download_windows.php" rel="nofollow">graphviz-2.38</a> having <code>dot</code> available in PATH. What am I missing?</p>

<p>Once it works, how could i draw the graph with nodes which:</p>

<ul>
<li>Use white background color </li>
<li>Have labels inside</li>
<li>Have directed arrows</li>
<li>Are arranged nicely either automatically or manually</li>
</ul>

<p>Something similar to the below image</p>

<p><a href="http://i.stack.imgur.com/Vhuai.png" rel="nofollow"><img src="http://i.stack.imgur.com/Vhuai.png" alt="enter image description here"></a></p>

<p>As you can see in that image, nodes are aligned really nicely</p>

<p>The package layout has changed in later versions of networkx. You can import the graphivz_layout function explicitly.</p>

<pre><code>import networkx as nx
import pylab as plt
from networkx.drawing.nx_agraph import graphviz_layout


G = nx.DiGraph()
G.add_node(1,level=1)
G.add_node(2,level=2)
G.add_node(3,level=2)
G.add_node(4,level=3)

G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(2,4)

nx.draw(G, pos=graphviz_layout(G), node_size=1600, cmap=plt.cm.Blues,
        node_color=range(len(G)),
        prog='dot')
plt.show()
</code></pre>

<p><a href="http://i.stack.imgur.com/D0XDx.png" rel="nofollow"><img src="http://i.stack.imgur.com/D0XDx.png" alt="enter image description here"></a></p>

python python-2.7 networkx