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を使用しています
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
を使用した場合は、この solution を見てパッケージをアンインストールしてください。 @qtipsに感謝します。
Pydot2で正しく機能する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をインストールするのではなく、公式のUbuntuリポジトリから「python-pydot」をインストールすることでした。
再び問題が発生し、上記の解決策は機能しませんでした。それがあなたに当てはまり、El Capitanを搭載したMacでAnacondaを使用している場合は、これを試してください:
conda install --channel https://conda.anaconda.org/RMG graphviz`
conda install --channel https://conda.anaconda.org/RMG pydot
現在、PyParsing-2とPython-3をサポートしているように見える少なくとも2つのバージョンがあります。
site-packages\pydotplus
からsite-packages\pydot
に変更する必要があります。Python 3互換性のためのブランチ
これは私のために働いた(Anaconda上のPython 2.7.10を搭載したMac OS X 10.9):
conda uninstall pydot
次に、
conda install pydot
Pyparsingは、pydotのインストール時に(2.xから1.5.7に)ダウングレードされます。将来のGoogle社員:これにより、Theanoを正しくインストールおよびインポートできました。
私がここで見たものから非常に多くの試行の後、私が最後にしたこと(networkxで動作するための擬似シーケンス):
apt-get remove python-pydot
pip install pydotplus
apt-get install libcgraph6
apt-get install python-pygraphviz
# pip freeze | grep pydot
pydotplus==2.0.2
# pip freeze | grep pyparsing
pyparsing==2.2.0
# pip freeze | grep graphviz
pygraphviz==1.2
# python -c 'import pydotplus'
#
また、pyparsing == 2.2.0の間に問題と私のpydot == 1.0.28に遭遇しました。 Googleから最新のpydot 1.2.3(tar.gz)をダウンロードして、オフラインでインストールすることで問題を修正しました。 ubuntu 14.04でpydotを更新したとき、pydot 1.0.28が最新バージョンであると述べました。したがって、Googleから1.2.3バージョンをダウンロードします。
OSX Mavericksでは、次のトリックが行われました...同じエラーが発生しましたが、下部にはgraphviz実行可能ファイルが存在しないという苦情もありました...他のモジュールの前にgraphvizをインストールしていたと思いますか?
brew uninstall graphviz
brew install graphviz
他のソリューションが機能しない場合、これは問題を解決するための迅速で汚い方法です:
この例は、Ubuntu 16.04のpython 2.7のものです。
ファイルpython2.7/site-packages/keras/utils/visualize_util.pyを編集し、以下のコードセグメントにコメントします。
if not pydot.find_graphviz():
raise ImportError('Failed to import pydot. You must install pydot'
' and graphviz for `pydotprint` to work.')
find_graphviz()は新しいバージョンのpydotでは冗長であり、上記の呼び出しは機能しません。
Pydotを正しく動作させるには、pyparsingをバージョン2.xからバージョン1.5.7にダウングレードする必要があります。
Condaを使用したwin-64の場合、これはうまくいきました。
conda install -c https://conda.anaconda.org/Trentonoliphant pyparsing=1.5.7
次に、2.xバージョンを無効/アンインストールし、スクリプトでpyparsingをリロードしました。
pyparsing = reload(pyparsing)
pydot = reload(pydot)
適切なバージョンが実行されているかどうかを確認するには:
print pyparsing.__version__