Networkx问题:需要安装Graphviz/Pygraphviz(Anaconda 2021.11,WIN10x64



我正在使用Jupyter Notebook进行图形分析。我需要使用Networkx来生成MultiDiGraph,我需要将其绘制为树,但出现了一个错误:

from networkx.drawing.nx_agraph import write_dot, graphviz_layout
write_dot(G,'test.dot')
plt.title('draw_networkx')
pos =graphviz_layout(G, prog='dot')
nx.draw(G, pos, with_labels=False, arrows=True)
ModuleNotFoundError                       Traceback (most recent call last)
D:ProgrammesAnaconda3libsite-packagesnetworkxdrawingnx_agraph.py in to_agraph(N)
131     try:
--> 132         import pygraphviz
133     except ImportError as e:
ModuleNotFoundError: No module named 'pygraphviz'
The above exception was the direct cause of the following exception:
ImportError                               Traceback (most recent call last)
~AppDataLocalTemp/ipykernel_33384/3939344011.py in <module>
----> 1 write_dot(G,'test.dot')
2 plt.title('draw_networkx')
3 pos =graphviz_layout(G, prog='dot')
4 nx.draw(G, pos, with_labels=False, arrows=True)
D:ProgrammesAnaconda3libsite-packagesnetworkxdrawingnx_agraph.py in write_dot(G, path)
183        Filename or file handle to write
184     """
--> 185     A = to_agraph(G)
186     A.write(path)
187     A.clear()
D:ProgrammesAnaconda3libsite-packagesnetworkxdrawingnx_agraph.py in to_agraph(N)
132         import pygraphviz
133     except ImportError as e:
--> 134         raise ImportError("requires pygraphviz " "http://pygraphviz.github.io/") from e
135     directed = N.is_directed()
136     strict = nx.number_of_selfloops(N) == 0 and not N.is_multigraph()
ImportError: requires pygraphviz http://pygraphviz.github.io/

所以我按照这个问题的说明做了,但我还是犯了同样的错误。也许我需要做一些其他的事情来将Pygraphviz添加到我的Anaconda环境中,这样我就可以使用networkx pygraphviz layouts了。

关于如何做好这件事,有什么建议吗?

我有Graphviz 2.5二进制文件,环境变量路径填充了bin的路径,所以我现在可以做上面链接的问题中显示的例子。但我感兴趣的代码需要Pygraphviz,所以我觉得我正在掌握我的网络。

您安装了错误的graphviz包装器,即python-graphviz,但您需要pyGraphviz:

conda install -c conda-forge pygraphviz

最新更新