2016-07-21 12 views
1

Da ich einige Code verwenden, um ein Netzwerk zu visualisieren, stieß ich auf einen Fehlerkann ein Netzwerk in Python nicht visualisieren - Problem mit pygraphviz?

Traceback (most recent call last): 
File "networkplot.py", line 21, in <module> 
pos = graphviz_layout(G, prog='neato') 
File "/opt/conda/lib/python2.7/site-packages/networkx/drawing/nx_agraph.py", line 228, in graphviz_layout 
return pygraphviz_layout(G,prog=prog,root=root,args=args) 
File "/opt/conda/lib/python2.7/site-packages/networkx/drawing/nx_agraph.py", line 258, in pygraphviz_layout 
'http://pygraphviz.github.io/') 
ImportError: ('requires pygraphviz ', 'http://pygraphviz.github.io/') 

deshalb pygraphiviz-1.3.1.tar.gz und pip install pygraphviz ich herunterladen. Es zeigte

Failed building wheel for pygraphviz 
Running setup.py clean for pygraphviz 
Failed to build pygraphviz 
Installing collected packages: pygraphviz 
Running setup.py install for pygraphviz ... error 
Complete output from command /opt/conda/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-0RJB9q/pygraphviz/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-vo59d4-record/install-record.txt --single-version-externally-managed --compile: 
running install 
Trying pkg-config 
Package libcgraph was not found in the pkg-config search path. 
Perhaps you should add the directory containing `libcgraph.pc' 
to the PKG_CONFIG_PATH environment variable 
No package 'libcgraph' found 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
    File "/tmp/pip-build-0RJB9q/pygraphviz/setup.py", line 87, in <module> 
    tests_require=['nose>=0.10.1', 'doctest-ignore-unicode>=0.1.0',], 
    File "/opt/conda/lib/python2.7/distutils/core.py", line 151, in setup 
    dist.run_commands() 
    File "/opt/conda/lib/python2.7/distutils/dist.py", line 953, in run_commands 
    self.run_command(cmd) 
    File "/opt/conda/lib/python2.7/distutils/dist.py", line 972, in run_command 
    cmd_obj.run() 
    File "setup_commands.py", line 44, in modified_run 
    self.include_path, self.library_path = get_graphviz_dirs() 
    File "setup_extra.py", line 121, in get_graphviz_dirs 
    include_dirs, library_dirs = _pkg_config() 
    File "setup_extra.py", line 44, in _pkg_config 
    output = S.check_output(['pkg-config', '--libs-only-L', 'libcgraph']) 
    File "/opt/conda/lib/python2.7/subprocess.py", line 573, in check_output 
    raise CalledProcessError(retcode, cmd, output=output) 
subprocess.CalledProcessError: Command '['pkg-config', '--libs-only-L', 'libcgraph']' returned non-zero exit status 1 

---------------------------------------- 
Command "/opt/conda/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-0RJB9q/pygraphviz/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-vo59d4-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-0RJB9q/pygraphviz/ 

Der Code, den ich verwendet:

import networkx as nx 
import matplotlib.pyplot as plt 
plt.switch_backend('agg') 
from networkx.drawing.nx_agraph import graphviz_layout 
import graphs 

A = graphs.create_graph() 
graph = A.graph 
G, labels = A.networkList() 

fig = plt.figure() 
pos = graphviz_layout(G, prog='neato') 

Könnte mir jemand mitteilen, wie dieses Problem zu lösen? Ich schätze Ihre Unterstützung sehr. Vielen Dank!

+0

Ja, und ich habe 'import graphviz' hinzugefügt, es zeigt immer noch' ImportError: ('erfordert pygraphviz', 'http://pygraphviz.github.io/') ' – achimneyswallow

Antwort

1

libcgraph ist Teil des Graphviz-Pakets von http://graphviz.org/. Sie müssen das vor der Installation von pygraphviz installieren. Das Paket graphviz, das Sie mit pip installieren, ist ein Python-Paket und nicht das von Ihnen benötigte graphviz-Paket.

+0

Haben Sie versucht, das Verzeichnis hinzuzufügen, das libcgraph enthält Ihre Umgebungsvariable PKG_CONFIG_PATH? – manan