python-3.x - Python 3 networkx draw_graphviz() 不起作用

标签 python-3.x graphviz networkx

我只想用 Python 3 networkx & graphviz 绘制一个简单的图形:

import networkx as nx

G = nx.complete_graph(3)
nx.draw_graphviz(G)

我正在使用 ubuntu14.04 和 IPython3,像往常一样,我做了 pip3 install networkx 并运行代码给了我:
ImportError: pydot could not be loaded: http://code.google.com/p/pydot/

我尝试安装 pydotplus 并运行代码:
/usr/local/lib/python3.4/dist-packages/networkx/drawing/nx_pydot.py in pydot_layout(G, prog, root, **kwds)
    294 
    295         if isinstance(node,list):
--> 296             node=node[0]
    297         pos=node.get_pos()[1:-1] # strip leading and trailing double quotes
    298         if pos != None:

IndexError: list index out of range

和 pydot2 也:
/usr/local/lib/python3.4/dist-packages/pydot.py in write(self, path, prog, format)
   1893             prog = self.prog
   1894 
-> 1895         dot_fd = file(path, "w+b")
   1896         if format == 'raw':
   1897             data = self.to_string()

NameError: name 'file' is not defined

我已经花了很多时间搜索和安装其他 pydots 和 pygraphviz 组合,但仍然没有运气。

虽然这可能是相关的:
pydot and graphviz error: Couldn't import dot_parser, loading of dot files will not be possible ,这并不能解决 Python 3 中的问题。

最佳答案

您可以通过编辑行 #292 来解决此问题。从:

    pydot_node = pydot.Node(make_str(n)).get_name().encode('utf-8')

最后删除编码:
    pydot_node = pydot.Node(make_str(n)).get_name() #.encode('utf-8')

我已报告此错误/修复 here .

关于python-3.x - Python 3 networkx draw_graphviz() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32183964/

相关文章:

Python 字符串拆分返回奇怪的字符

Graphviz 和 Dot 以及具有数百个节点的图形。

C++ Boost 图库 : outputting custom vertex properties

python - 查找给定图(Python)的所有完整子图的有效方法?

python - Discord.py on_guild_join 事件

正则表达式捕获包含在其他字符中的列表中的数字

graphviz - Graphviz 中集群之间的直边

python - 如何删除networkx中节点的轮廓

python - 让 random_powerlaw_tree() 生成节点数超过 10 的树的参数

python - 找不到我的模块