我正在尝试构建一个应用程序以可视化方式可视化网络。但是,我的pygraphviz安装似乎给我带来了麻烦。每次我尝试运行代码时,都会出现错误“ AttributeError:模块'pygraphviz'没有属性'AGraph'”
我正在使用Anaconda发行版,并且尝试使用几个不同的通道安装pygraphviz,但它总是给我同样的错误。我最终手动下载了.whl文件并使用pip进行安装,如下所示:
howto install pygraphviz on windows 10 64bit
我正在运行Windows 10 64位计算机以及python 3.4版。这是我尝试运行的一些代码示例(从pygraphviz安装中的examples文件夹复制):
from __future__ import absolute_import
from __future__ import unicode_literals
from __future__ import print_function
from __future__ import division
import pygraphviz as pgv
A=pgv.AGraph(directed=True,strict=True,rankdir='LR')
A.add_node(1,color='red')
A.add_node(5,color='blue')
A.add_edge(1,2,color='green')
A.add_edge(2,3)
A.add_edge(1,3)
A.add_edge(3,4)
A.add_edge(3,5)
A.add_edge(3,6)
A.add_edge(4,6)
A.graph_attr['epsilon']='0.001'
print(A.string()) # print dot file to standard output
A.layout('dot') # layout with dot
A.draw('foo.ps') # write to file
这给了我错误“ AttributeError:模块'pygraphviz'没有属性'AGraph'”。任何帮助将不胜感激!
答案 0 :(得分:0)
就我而言,我不得不在旧程序(pygraphviz使用python 2.7)中替换以下行:
my_graph = graphviz.AGraph(id="my_graph", name="my_graph", file=self.fileName)
my_graph.layout(prog='dot')
my_graph.draw(path="my_graph3.svg", format="svg")
具有:
from graphviz import Source, render
my_graph = graphviz.Digraph(name="my_graph", engine='dot')
my_graph.src = Source(srcStr, filename=None, directory=None, format='svg', engine='dot', encoding='utf-8')
my_graph.src.render('dot', 'svg', 'my_graph3.svg',renderer='cairo', formatter='cairo')
srcStr是一个像这样的字符串:
digraph "pet-shop" {
graph [rankdir=LR]
node [shape=plaintext]
edge [arrowhead=vee arrowsize=2]
parrot
dead
parrot -> dead
}
尽管我认为这会创建一个my_graph3.svg文件,但实际上创建了一个文件夹svg,其中包含文件'dot.cairo.cairo.svg'。
此外,要花很多时间才能反复尝试,因此,如果有帮助,我会在此发布。 任何与改进参数有关的评论都将受到赞赏。