当我用pydot运行一个非常简单的代码时
import pydot
graph = pydot.Dot(graph_type='graph')
for i in range(3):
edge = pydot.Edge("king", "lord%d" % i)
graph.add_edge(edge)
vassal_num = 0
for i in range(3):
for j in range(2):
edge = pydot.Edge("lord%d" % i, "vassal%d" % vassal_num)
graph.add_edge(edge)
vassal_num += 1
graph.write_png('example1_graph.png')
它会打印错误消息:
Couldn't import dot_parser, loading of dot files will not be possible.
我使用的是python 2.7.3
发布于 2014-02-01 04:22:34
pip代码库中有一个名为pydot2的新包,它可以在pyparsing2中正常运行。我无法降级我的包,因为matplotlib依赖于更新的pyparsing包。
注:来自macports的python2.7
发布于 2013-08-31 19:49:44
pydot使用了来自pyparsing的私有模块变量(_noncomma)。下面的diff将其修复为用于pyparsing 2.0.1:
diff --git a/dot_parser.py b/dot_parser.py
index dedd61a..138d152 100644
--- a/dot_parser.py
+++ b/dot_parser.py
@@ -25,8 +25,9 @@ from pyparsing import __version__ as pyparsing_version
from pyparsing import ( nestedExpr, Literal, CaselessLiteral, Word, Upcase, OneOrMore, ZeroOrMore,
Forward, NotAny, delimitedList, oneOf, Group, Optional, Combine, alphas, nums,
restOfLine, cStyleComment, nums, alphanums, printables, empty, quotedString,
- ParseException, ParseResults, CharsNotIn, _noncomma, dblQuotedString, QuotedString, ParserElement )
+ ParseException, ParseResults, CharsNotIn, dblQuotedString, QuotedString, ParserElement )
+_noncomma = "".join( [ c for c in printables if c != "," ] )
class P_AttrList:
发布于 2015-06-29 13:04:33
$ sudo pip uninstall pydot
$ sudo pip install pydot2
https://stackoverflow.com/questions/15951748
复制相似问题