簡體   English   中英

無法繪制石榴圖(找不到 pygraphviz)

[英]Can't plot pomegranate graph (pygraphviz not found)

我不明白發生了什么,但我似乎不再能夠從 PyCharm 內部繪制石榴圖。 我正在使用 conda 作為包管理器,並且已經照常進行了:

conda install graphviz
conda install python-graphviz

但每次我從 PyCharm 內部調用model.plot()時,我都會得到

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/Applications/PyCharm.app/Contents/helpers/pydev/_pydev_bundle/pydev_umd.py", line 198, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "/Applications/PyCharm.app/Contents/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "/Users/.../xai/import.py", line 36, in <module>
    model.plot()
  File "pomegranate/BayesianNetwork.pyx", line 281, in pomegranate.BayesianNetwork.BayesianNetwork.plot
ValueError: must have pygraphviz installed for visualization

我顯然已經嘗試安裝pygraphviz但它似乎沒有什么區別

我剛剛遇到了同樣的問題。 我解決了安裝 graphviz 開發包的問題。 在 openSUSE 存儲庫中,它被稱為graphviz-devel

它的描述說:

graphviz-devel 包包含開發使用 graphviz 庫(包括 man3 頁面)的程序所需的一切。

遇到了類似的問題,雖然@Baumann 的解決方案對我不起作用,但安裝matplotlib解決了我的問題(Win10 和 WSL 下的 python 3.6)。

pip 安裝 matplotlib

提出這個建議的背景: BayesianNetwork.pyx中的石榴代碼使用相同的 try 語句捕獲多個導入異常(參見下面的代碼,也可在github 上找到,最新提交 f116357 ,在我的情況下,即使我安裝了pygraphviz ,但沒有安裝matplotlib導致令人沮喪的異常被提出。

第 40 行以后:

try:
    import tempfile
    import pygraphviz
    import matplotlib.pyplot as plt
    import matplotlib.image
except ImportError:
    pygraphviz = None

然后從第 222 行開始:

if pygraphviz is not None:
    G = pygraphviz.AGraph(directed=True)

    for state in self.states:
        G.add_node(state.name, color='red')

    for parent, child in self.edges:
        G.add_edge(parent.name, child.name)

    if filename is None:
        with tempfile.NamedTemporaryFile() as tf:
            G.draw(tf.name, format='png', prog='dot')
            img = matplotlib.image.imread(tf.name)
            plt.imshow(img)
            plt.axis('off')
    else:
        G.draw(filename, format='pdf', prog='dot')

else:
    raise ValueError("must have pygraphviz installed for visualization")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM