[python] pydot 및 graphviz 오류 : dot_parser를 가져올 수 없습니다. 도트 파일을로드 할 수 없습니다.

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.

파이썬 2.7.3을 사용하고 있습니다.



답변

에 대한 답변 pydot >= 1.1:

(상류)의 비 호환성 pydot에 의해 고정되어 6dff94b3f1 , 따라서 pydot >= 1.1것이다 호환pyparsing >= 1.5.7 .


해당되는 답변 pydot <= 1.0.28:

이것을 발견하는 다른 사람에게는 1.x에서 2.x 릴리스로의 pyparsing이 변경 되었기 때문입니다. pip를 사용하여 pydot을 설치하려면 먼저 이전 버전의 pyparsing을 설치하십시오.

pip install pyparsing==1.5.7
pip install pydot==1.0.28

pyparsing사용하여 설치하지 않고 pip대신을 사용 setup.py했다면이 솔루션 을 살펴보고 패키지를 제거하십시오. 감사합니다 @qtips.


답변

pyparsing2에서 올바르게 작동하는 pydot2라는 pip 저장소에 새 패키지가 있습니다. matplotlib가 최신 pyparsing 패키지에 의존하기 때문에 내 패키지를 다운 그레이드 할 수 없습니다.

참고 : macports의 python2.7


답변

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:


답변

pydot 저장소 [1]를 분기하고 Gabi Davar 패치를 적용하고 python-3을 지원하기위한 일부 변경 사항을 적용했습니다. 패키지는 PyPI [2]에서 사용할 수 있습니다.

건배


답변

$ sudo pip uninstall pydot

$ sudo pip install pydot2

다음 링크를 참조하십시오. http://infidea.net/troubleshooting-couldnt-import-dot_parser-loading-of-dot-files-will-not-be-possible/


답변

해결책은 어딘가에서 pydot을 설치하는 것이 아니라 공식 우분투 저장소에서 “python-pydot”을 설치하는 것이 었습니다.


답변

이제 PyParsing-2 및 Python-3을 지원하는 것으로 보이는 버전이 2 개 이상 더 있습니다.

  • PyDotPlus 에 의해 카를로스 젠킨스 편안한와 함께 buildbot과 화려한 트래비스 문서를 . 그러나 pydot을 가져 오는 기존 프로그램에서 작동 site-packages\pydotplus하려면 폴더 이름을에서로 변경해야합니다 site-packages\pydot.
  • pydot3k by bmcorser . 슬프게도 작동하지 않았습니다!
  • 공식 pydot Google 코드 페이지에서 링크 된 James Mills의 prologic / pydot

    Python 3 호환성을위한 분기

  • 다음은 David Villa의 pydot2에 대한 작업 링크입니다.
    https://pypi.python.org/pypi/pydot2/1.0.32