Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“错误”;GraphViz';“未找到s可执行文件”;从iPython笔记本中的NetworkX调用GraphViz布局时_Python_Graphviz_Ipython Notebook_Networkx_Enthought - Fatal编程技术网

“错误”;GraphViz';“未找到s可执行文件”;从iPython笔记本中的NetworkX调用GraphViz布局时

“错误”;GraphViz';“未找到s可执行文件”;从iPython笔记本中的NetworkX调用GraphViz布局时,python,graphviz,ipython-notebook,networkx,enthought,Python,Graphviz,Ipython Notebook,Networkx,Enthought,在我的代码中尝试使用GraphViz_layout方法时,我收到错误“InvocationException:GraphViz的可执行文件找不到,错误GraphViz的可执行文件找不到”。当graphviz_布局替换为spring_布局时,代码运行良好。从回溯异常信息来看,它似乎调用了pydot_布局。我通过Canopy的包管理器安装了pydot模块,但是导入它并没有帮助。我还安装了pip graphviz,并在没有运气的情况下导入了它 这是我的密码: import networkx as nx

在我的代码中尝试使用GraphViz_layout方法时,我收到错误“InvocationException:GraphViz的可执行文件找不到,错误GraphViz的可执行文件找不到”。当graphviz_布局替换为spring_布局时,代码运行良好。从回溯异常信息来看,它似乎调用了pydot_布局。我通过Canopy的包管理器安装了pydot模块,但是导入它并没有帮助。我还安装了pip graphviz,并在没有运气的情况下导入了它

这是我的密码:

import networkx as nx
import matplotlib.pyplot as plt

keywordTreeFile = open('decode_wordnet/keywordTreeFile.TXT','r') #keyword generation file
keywordTreeFileLineData = keywordTreeFile.readlines()

G = nx.Graph()
pairData = []

for i in range(0,len(keywordTreeFileLineData)):
    pairData = pairData + [keywordTreeFileLineData[i].split('\t')]
    pairData[i][1] = pairData[i][1].rstrip('\n')
    G.add_edge(pairData[i][0],pairData[i][1])

pos = nx.graphviz_layout(G)

nx.draw(G,
        pos=pos,
        width = 1.0,
        with_labels = True,
        font_size = 3,
        linewidths=.1
        )
plt.savefig("graph.pdf")
以下是回溯异常信息:

---------------------------------------------------------------------------
InvocationException                       Traceback (most recent call last)
<ipython-input-1-e85a11cf6191> in <module>()
     15 
     16 #pos = nx.spring_layout(G,k=.15,iterations=50,scale=100)
---> 17 pos = nx.graphviz_layout(G)
     18 #labels = nx.draw_networkx_labels(G,pos)
     19 nx.draw(G,

/Users/scott/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/networkx/drawing/nx_pydot.pyc in graphviz_layout(G, prog, root, **kwds)
    245     This is a wrapper for pydot_layout.
    246     """
--> 247     return pydot_layout(G=G,prog=prog,root=root,**kwds)
    248 
    249 

/Users/scott/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/networkx/drawing/nx_pydot.pyc in pydot_layout(G, prog, root, **kwds)
    269         P.set("root",make_str(root))
    270 
--> 271     D=P.create_dot(prog=prog)
    272 
    273     if D=="":  # no data returned

/Users/scott/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pydot.pyc in <lambda>(f, prog)
   1800             self.__setattr__(
   1801                 'create_'+frmt,
-> 1802                 lambda f=frmt, prog=self.prog : self.create(format=f, prog=prog))
   1803             f = self.__dict__['create_'+frmt]
   1804             f.__doc__ = '''Refer to the docstring accompanying the 'create' method for more information.'''

/Users/scott/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pydot.pyc in create(self, prog, format)
   1951             if self.progs is None:
   1952                 raise InvocationException(
-> 1953                     'GraphViz\'s executables not found' )
   1954 
   1955         if not self.progs.has_key(prog):

InvocationException: GraphViz's executables not found
---------------------------------------------------------------------------
调用异常回溯(最近一次调用上次)
在()
15
16#pos=nx.spring_布局(G,k=0.15,迭代次数=50,比例=100)
--->17位置=nx.图形布局(G)
18#标签=nx.绘制网络x标签(G,位置)
19 nx.图纸(G,
/图形布局中的Users/scott/Library/enthught/Canopy_64bit/User/lib/python2.7/site-packages/networkx/drawing/nx_pydot.pyc(G,prog,root,**kwds)
245这是pydot_布局的包装。
246     """
-->247返回pydot_布局(G=G,prog=prog,root=root,**kwds)
248
249
/pydot_布局中的Users/scott/Library/enthught/Canopy_64bit/User/lib/python2.7/site-packages/networkx/drawing/nx_pydot.pyc(G,prog,root,**kwds)
269 P.set(“根”,make_str(根))
270
-->271 D=P.创建点(prog=prog)
272
273如果D==”:#没有返回数据
/Users/scott/Library/enthund/Canopy_64bit/User/lib/python2.7/site-packages/pydot.pyc in(f,prog)
1800自我保护__(
1801“创建”+frmt,
->1802 lambda f=frmt,prog=self.prog:self.create(format=f,prog=prog))
1803 f=自我记录(创建+frmt)
1804 f.uuu doc_uuuu=''有关详细信息,请参阅“创建”方法附带的文档字符串。“”
/创建(self、prog、format)中的Users/scott/Library/enthund/Canopy_64bit/User/lib/python2.7/site-packages/pydot.pyc
1951如果self.progs为无:
1952年(
->1953年“未找到GraphViz的可执行文件”)
1954
1955如果不是自编程,则具有_键(编程):
调用异常:找不到GraphViz的可执行文件

系统信息:我使用的是64位Mac OS X 10.9.5上最新版本和模块的Enthound Canopy。此外,我使用的是iPython笔记本电脑。

我通过使用macports在Mac上安装GraphViz解决了这个问题:

sudo port install graphviz

在这种情况下,仅安装python软件包是不够的。尽管如此,这是一种依赖关系,Enthough本应采用这种依赖关系。

通常,您应该从新安装Macports开始

  • 删除旧的Macports

    sudo端口-f已安装卸载
    sudo端口清理--工作--归档所有内容

  • 导入、安装和编译最新的Macports源文件

    cd~
    旋度-O
    tar xf MacPorts-2.3.3.tar.bz2
    cd MacPorts-2.3.3/
    /配置
    制造
    sudo make安装
    端口版本

  • (可选)更新Macports

    sudo端口自更新
    sudo端口升级已过时

  • 使用新的Macports安装Graphviz

    sudo端口安装图(graphviz)
    sudo pip安装--升级graphviz

  • 对于ubuntu用户:-

    sudo apt-get install -y graphviz libgraphviz-dev
    

    这将安装python显示绘图所需的graphviz可执行文件

    我收到
    错误:找不到graphviz端口
    4年后,我建议安装anaconda(或至少一个conda env)。这样做之后,安装Python包和Mac应用程序就变成了一行程序:
    conda安装-c anaconda graphviz Python graphviz