python graphviz安装,Python:pygraphviz和graphviz的安装问题

I see many questions on the difficulties of properly installing pygraphviz and graphviz on Windows for Python 2.7. But no answers that I have found is solving my problem. Here's what I did:

I first installed pygraphviz using unofficial windows binaries

with this link in my anaconda (python) folder (

C:\Users\chamar\AppData\Local\Continuum\Anaconda )

Downloaded graphviz-2.36.msi and installed it under the default

path C:\Program Files (x86)\Graphviz2.36

The command import pygraphviz in Python works. But when I want to use say this function nx.graphviz_layout I get raise ValueError("Program %s not found in path."%prog)

What may cause this problem is that pygraphviz cannot locate the path of graphviz. Now, since I installed pygraphviz using the unofficial windows binary, which file can I modify to link both the library and include for graphviz's path? You would you usually find in the setup.py of pygraphviz the library and include paths when you don't use the unofficial binaries.

UPDATE 1

I added to PATH in Regedit under SOFTWARE a folder GRAPHIZ with a new key (default) with value C:\Program Files (x86)\Graphviz2.36\bin

UPDATE 2

I was having an error in the pydot.py file regarding the difficulty of Python locating the path of Graphviz. I made the changes as follow:

def _graphviz():

if os.sys.platform == 'win32':

path = r"C:/Program Files (x86)/Graphviz2.36/bin/"

progs = __find_executables(path)

return progs

find_graphviz()

{'fdp': 'C:/Program Files (x86)/Graphviz2.36/bin/fdp.exe', 'twopi': 'C:/Program Files (x86)/Graphviz2.36/bin/twopi.exe', 'neato': 'C:/Program Files (x86)/Graphviz2.36/bin/neato.exe', 'dot': 'C:/Program Files (x86)/Graphviz2.36/bin/dot.exe', 'circo': 'C:/Program Files (x86)/Graphviz2.36/bin/circo.exe'}

That seems ok with me but when I execute say:

positions = nx.graphviz_layout(G, prog='twopi', root=0)

I get:

Traceback (most recent call last):

File "", line 1, in

File "C:\Users\chamar.stu\AppData\Local\Continuum\Anaconda\lib\site-packages\networkx\drawing\nx_agraph.py", line 229, in graphviz_layout

return pygraphviz_layout(G,prog=prog,root=root,args=args)

File "C:\Users\chamar.stu\AppData\Local\Continuum\Anaconda\lib\site-packages\networkx\drawing\nx_agraph.py", line 264, in pygraphviz_layout

A.layout(prog=prog,args=args)

File "C:\Users\chamar.stu\AppData\Local\Continuum\Anaconda\lib\site-packages\pygraphviz\agraph.py", line 1305, in layout

data=self._run_prog(prog,' '.join([args,"-T",fmt]))

File "C:\Users\chamar.stu\AppData\Local\Continuum\Anaconda\lib\site-packages\pygraphviz\agraph.py", line 1251, in _run_prog

runprog=r'"%s"'%self._get_prog(prog)

File "C:\Users\chamar.stu\AppData\Local\Continuum\Anaconda\lib\site-packages\pygraphviz\agraph.py", line 1239, in _get_prog

raise ValueError("Program %s not found in path."%prog)

ValueError: Program twopi not found in path.

Why?

解决方案

Here are the steps I followed to get pygraphviz working for Python 3.4 (I think if you follow the analogous steps, it should work for Python 2.x). I'm just documenting it here for future visitors to the page :

Pre-requisites :

wheel (Should be present by default in newer distributions)

The correct Windows build of pygraphviz (unofficial builds). On Win7 x64, I selected "pygraphviz‑$version-cp34‑none‑win_amd64.whl".

(Note the cp34 indicating the python version.)

The Graphviz installer version 2.38 (for which the above wheel is built)

Steps:

Run the Graphviz installer

Add the Graphviz\bin folder to your user or system PATH

Check: Open a command prompt and execute twopi -V. You should be able to see the Graphviz version printed onto the console.

Now go to your Python environment (e.g. by running anaconda.bat, a prompt where you can run python)

Run pip install pygraphviz‑*$version*-cp34‑none‑win_amd64.whl

You're done :) ! Run an example script to see if everything went well.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值