Не удается получить доступ к исполняемым файлам GraphViz даже после добавления папки GraphViz в PATH

Я работаю над графиками на Jupyter, и, поскольку networkx не обеспечивает хорошего представления графика, я попытался использовать пакет GraphViz, а точнее найденный там пакет: https://github.com/chebee7i/nxpd .

Сначала я импортировал пакет nxpd, но когда я попробовал функцию draw(), я столкнулся с этой ошибкой:

InvocationException: исполняемые файлы GraphViz не найдены.

Сначала я подумал, что это из-за того, что я не установил пакет pygraphviz, что я и пытался сделать, но теперь я сталкиваюсь с этой ошибкой:

Collecting pygraphviz
  Using cached pygraphviz-1.3.1.zip
Building wheels for collected packages: pygraphviz
  Running setup.py bdist_wheel for pygraphviz: started
  Running setup.py bdist_wheel for pygraphviz: finished with status 'error'
  Complete output from command "D:\Program Files (x86)\Anaconda3\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\VPELL_~1\\AppData\\Local\\Temp\\pip-build-vs56t5f2\\pygraphviz\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d C:\Users\VPELL_~1\AppData\Local\Temp\tmpqiovc8brpip-wheel- --python-tag cp35:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-3.5
  creating build\lib.win-amd64-3.5\pygraphviz
  copying pygraphviz\agraph.py -> build\lib.win-amd64-3.5\pygraphviz
  copying pygraphviz\graphviz.py -> build\lib.win-amd64-3.5\pygraphviz
  copying pygraphviz\release.py -> build\lib.win-amd64-3.5\pygraphviz
  copying pygraphviz\version.py -> build\lib.win-amd64-3.5\pygraphviz
  copying pygraphviz\__init__.py -> build\lib.win-amd64-3.5\pygraphviz
  creating build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\test.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\test_attributes.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\test_attribute_defaults.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\test_clear.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\test_drawing.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\test_edge_attributes.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\test_graph.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\test_html.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\test_layout.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\test_node_attributes.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\test_readwrite.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\test_string.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\test_subgraph.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\test_unicode.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  copying pygraphviz\tests\__init__.py -> build\lib.win-amd64-3.5\pygraphviz\tests
  running egg_info
  writing dependency_links to pygraphviz.egg-info\dependency_links.txt
  writing top-level names to pygraphviz.egg-info\top_level.txt
  writing pygraphviz.egg-info\PKG-INFO
  warning: manifest_maker: standard file '-c' not found

  reading manifest file 'pygraphviz.egg-info\SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no previously-included files matching '*~' found anywhere in distribution
  warning: no previously-included files matching '*.pyc' found anywhere in distribution
  warning: no previously-included files matching '.svn' found anywhere in distribution
  no previously-included directories found matching 'doc\build'
  writing manifest file 'pygraphviz.egg-info\SOURCES.txt'
  copying pygraphviz\graphviz.i -> build\lib.win-amd64-3.5\pygraphviz
  copying pygraphviz\graphviz_wrap.c -> build\lib.win-amd64-3.5\pygraphviz
  running build_ext
  building 'pygraphviz._graphviz' extension
  creating build\temp.win-amd64-3.5
  creating build\temp.win-amd64-3.5\Release
  creating build\temp.win-amd64-3.5\Release\pygraphviz
  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-ID:\Program Files (x86)\Anaconda3\include" "-ID:\Program Files (x86)\Anaconda3\include" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tcpygraphviz/graphviz_wrap.c /Fobuild\temp.win-amd64-3.5\Release\pygraphviz/graphviz_wrap.obj
  graphviz_wrap.c
  pygraphviz/graphviz_wrap.c(2954): fatal error C1083: Cannot open include file: 'graphviz/cgraph.h': No such file or directory
  error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2

  ----------------------------------------
  Running setup.py clean for pygraphviz
Failed to build pygraphviz
Installing collected packages: pygraphviz
  Running setup.py install for pygraphviz: started
    Running setup.py install for pygraphviz: finished with status 'error'
    Complete output from command "D:\Program Files (x86)\Anaconda3\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\VPELL_~1\\AppData\\Local\\Temp\\pip-build-vs56t5f2\\pygraphviz\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\VPELL_~1\AppData\Local\Temp\pip-fplxc9at-record\install-record.txt --single-version-externally-managed --compile:
    running install
    include_dirs=None
    library_dirs=None
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.5
    creating build\lib.win-amd64-3.5\pygraphviz
    copying pygraphviz\agraph.py -> build\lib.win-amd64-3.5\pygraphviz
    copying pygraphviz\graphviz.py -> build\lib.win-amd64-3.5\pygraphviz
    copying pygraphviz\release.py -> build\lib.win-amd64-3.5\pygraphviz
    copying pygraphviz\version.py -> build\lib.win-amd64-3.5\pygraphviz
    copying pygraphviz\__init__.py -> build\lib.win-amd64-3.5\pygraphviz
    creating build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\test.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\test_attributes.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\test_attribute_defaults.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\test_clear.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\test_drawing.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\test_edge_attributes.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\test_graph.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\test_html.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\test_layout.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\test_node_attributes.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\test_readwrite.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\test_string.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\test_subgraph.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\test_unicode.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    copying pygraphviz\tests\__init__.py -> build\lib.win-amd64-3.5\pygraphviz\tests
    running egg_info
    writing dependency_links to pygraphviz.egg-info\dependency_links.txt
    writing pygraphviz.egg-info\PKG-INFO
    writing top-level names to pygraphviz.egg-info\top_level.txt
    warning: manifest_maker: standard file '-c' not found

    reading manifest file 'pygraphviz.egg-info\SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no previously-included files matching '*~' found anywhere in distribution
    warning: no previously-included files matching '*.pyc' found anywhere in distribution
    warning: no previously-included files matching '.svn' found anywhere in distribution
    no previously-included directories found matching 'doc\build'
    writing manifest file 'pygraphviz.egg-info\SOURCES.txt'
    copying pygraphviz\graphviz.i -> build\lib.win-amd64-3.5\pygraphviz
    copying pygraphviz\graphviz_wrap.c -> build\lib.win-amd64-3.5\pygraphviz
    running build_ext
    building 'pygraphviz._graphviz' extension
    creating build\temp.win-amd64-3.5
    creating build\temp.win-amd64-3.5\Release
    creating build\temp.win-amd64-3.5\Release\pygraphviz
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -INone "-ID:\Program Files (x86)\Anaconda3\include" "-ID:\Program Files (x86)\Anaconda3\include" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tcpygraphviz/graphviz_wrap.c /Fobuild\temp.win-amd64-3.5\Release\pygraphviz/graphviz_wrap.obj
    graphviz_wrap.c
    pygraphviz/graphviz_wrap.c(2954): fatal error C1083: Cannot open include file: 'graphviz/cgraph.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2

    ----------------------------------------
  Failed building wheel for pygraphviz
Command ""D:\Program Files (x86)\Anaconda3\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\VPELL_~1\\AppData\\Local\\Temp\\pip-build-vs56t5f2\\pygraphviz\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\VPELL_~1\AppData\Local\Temp\pip-fplxc9at-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\VPELL_~1\AppData\Local\Temp\pip-build-vs56t5f2\pygraphviz\
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

После поиска в StackOverflow я добавил следующие каталоги:

D:\Program Files (x86)\Anaconda3\Lib\site-packages\graphviz\bin
D:\Program Files (x86)\Anaconda3\Lib\site-packages\graphviz\include\graphviz

на мой PATH, но это ничего не изменило.

Спасибо за помощь.


person vpilgrim    schedule 22.12.2016    source источник


Ответы (2)


Вы добавили путь в командной строке, используя:

PATH = %PATH%;<new path stuff>

или вы добавили его, используя переменные среды в свойствах системы?

Я обнаружил, что мне нужно добавить его, используя системные свойства, чтобы сделать его общесистемным; он все еще не работал, когда добавлялся только с помощью командной строки.

person Christopher Marshall    schedule 22.12.2016

Попробуйте добавить свой путь в сам блокнот jupyter, используя os.environ.

import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'
person Ernest S Kirubakaran    schedule 11.09.2017