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

3
我正在使用 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:\Programmes\Anaconda3\lib\site-packages\networkx\drawing\nx_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)
~\AppData\Local\Temp/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:\Programmes\Anaconda3\lib\site-packages\networkx\drawing\nx_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:\Programmes\Anaconda3\lib\site-packages\networkx\drawing\nx_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二进制文件,并在环境变量Path中填入bin路径,所以现在我能够运行上述问题中展示的示例代码。 但是我感兴趣的代码需要Pygraphviz,所以我觉得我正在迈向掌握网络的第一步。

1个回答

3
您安装的graphviz包装器不正确,即 python-graphviz,但您需要pyGraphviz
conda install -c conda-forge pygraphviz

1
成功了!Conda 降级了一些包,但对我的代码没有任何影响。 - Lemisourd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接