Установка pygraphviz на Windows 10 64-bit, Python 3.6

Я пытаюсь установить pygraphviz на Windows 10. Есть много решений этой проблемы в Интернете, но ни один еще не работал для меня. Точная проблема у меня с этим с помощью Jupyter notebook-->

[1] import networkx as nx
import pylab as plt
from networkx.drawing.nx_agraph import graphviz_layout

[2]G = nx.DiGraph()
G.add_node(1,level=1)
G.add_node(2,level=2)
G.add_node(3,level=2)
G.add_node(4,level=3)

G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(2,4)

nx.draw(G, pos=graphviz_layout(G), node_size=1600, cmap=plt.cm.Blues,
    node_color=range(len(G)),
    prog='dot')
plt.show()

Я получаю следующие ошибки после [2]:

ModuleNotFoundError                       Traceback (most recent call last)
C:\Users\name\Anaconda3\lib\site-packages\networkx\drawing\nx_agraph.py 
in 
pygraphviz_layout(G, prog, root, args)
    254     try:
--> 255         import pygraphviz
    256     except ImportError:

ModuleNotFoundError: No module named 'pygraphviz'

и

ImportError                               Traceback (most recent call last)
<ipython-input-2-86a15892f0f0> in <module>()
  9 G.add_edge(2,4)
 10 
---> 11 nx.draw(G, pos=graphviz_layout(G), node_size=1600, cmap=plt.cm.Blues,
 12         node_color=range(len(G)),
 13         prog='dot')

C:\Users\name\Anaconda3\lib\site-packages\networkx\drawing\nx_agraph.py in graphviz_layout(G, prog, root, args)
226 
227     """
--> 228     return pygraphviz_layout(G,prog=prog,root=root,args=args)
229 
230 def pygraphviz_layout(G,prog='neato',root=None, args=''):

C:\Users\name\Anaconda3\lib\site-packages\networkx\drawing\nx_agraph.py in pygraphviz_layout(G, prog, root, args)
256     except ImportError:
257         raise ImportError('requires pygraphviz ',
--> 258                           'http://pygraphviz.github.io/')
259     if root is not None:
260         args+="-Groot=%s"%root

ImportError: ('requires pygraphviz ', 'http://pygraphviz.github.io/')

Вот что я пытался решить эту проблему

(1) Обычная установка pip: "pip install pygraphviz" Это ошибка, которую я получаю в конце. ОБНОВЛЕНИЕ Я получаю ту же ошибку, даже если я запускаю cmd от имени администратора.

Command "C:\Users\name\Anaconda3\python.exe -u -c "import setuptools, 
tokenize;__file__='C:\\Users\\name~1\\AppData\\Local\\Temp\\pip-build-
n81lykqs\\pygraphviz\\setup.py';f=getattr(tokenize, 'open', open)
(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, 
__file__, 'exec'))" install --record C:\Users\name~1\AppData\Local\Temp\pip-
b3jz1lk5-record\install-record.txt --single-version-externally-managed --
compile" failed with error code 1 in C:\Users\name~1\AppData\Local\Temp\pip-
build-n81lykqs\pygraphviz\

(2) Загрузка и установка graphviz-2.38.msi, а затем загрузка обеих 64-битных версий колеса. Это результат.

C:\Users\name\Anaconda3>pip install pygraphviz-1.3.1-cp34-none-
win_amd64.whl
pygraphviz-1.3.1-cp34-none-win_amd64.whl is not a supported wheel on this 
platform.

C:\Users\name\Anaconda3>pip install pygraphviz-1.3.1-cp27-none-
win_amd64.whl
pygraphviz-1.3.1-cp27-none-win_amd64.whl is not a supported wheel on this 
platform.

Что я хотел бы попробовать, но не уверен, как это сделать правильно:

Отредактируйте setup.py. Я много читал о людях, которые находят решения в изменении путей, но я не совсем уверен, как это сделать. Этот метод выглядит очень сложным.

Спасибо за любую помощь/понимание!

Ответ 1

Казалось, что большинство проголосовавших ответов - это установка графвиза, а не пиграфвиза.

Если вы используете среду conda, вы можете попробовать использовать этот канал:

conda install graphviz pygraphviz -c alubbock

Я попробовал это с networkx 2.1, он работал нормально.

Ответ 2

Обновлен репозиторий: [GitHub]: CristiFati/Prebuilt-Binaries - (мастер) Prebuilt-Binaries/Windows/PyGraphviz.
Добавлены .whls(win_amd64, win32) для Python:

  • 3,7
  • 3,6
  • 3,5

Для Python 2.7 они уже созданы: [UCI.LFD]: неофициальные двоичные файлы Windows для пакетов расширений Python - PyGraphviz, интерфейс к пакету макетов и визуализации Graphviz. ,

Примечания:

  • В некоторых (я полагаю, в большинстве) случаях установка Graphviz потребуется в системе, где работает PyGraphviz, поскольку PyGraphviz использует некоторые инструменты Graphviz (исполняемые файлы). Они могут быть загружены или построены (они не должны соответствовать архитектуре PyGraphviz (32-разрядная, 64-разрядная), поскольку они вызываются)
  • Также была исправлена ошибка (присутствует в предыдущих версиях)
  • Проверьте [SO]: pygraphviz 1.5 по умолчанию край без стрелки? (@CristiFati ответ) для более подробной информации

Любой, кто хочет узнать больше деталей о процессе сборки, читайте дальше !



1. Введение

Почти 2 года спустя, и проблема (ну, не совсем так, как в вопросе) все еще сохраняется.

Я хочу начать с подчеркивания различий между двумя пакетами:

В среде Anaconda [SO]: установка PyGraphviz в 64-битной Windows 10, Python 3.6 (ответ @TomHanks) работает отлично.

pygraphwiz имеет только доступный для скачивания файл архива (в данном случае -.zip), то есть он содержит (C/C++) источники.

Несколько слов о пакетах (.whls), имена которых содержат такие вещи, как cp34-none-win_amd64 (проверьте [SO]: что означает название версии "cp27" или "cp35" в Python? (Ответ @WayneWerner) для деталей):

  • Они содержат двоичные файлы (.so или .pyd(.dll)), которые связаны с определенной библиотекой Python.
    • Они предназначены для работы только с этой версией Python (поэтому 34 не предназначен для работы с Python 3.6)
    • Даже если кто-то как-то "перехитрит" пип и сможет установить такой пакет (на самом деле это не так сложно), он потерпит неудачу во время импорта, или, что еще хуже, он имеет высокую вероятность сбоя Python

Теперь во многих пакетах есть встроенные двоичные файлы для большинства распространенных версий Python, работающих в различных ОС (например, [PyPI]: mysql-connector-python - Download files), но так же, как и во многих других, они содержат только исходные коды. К сожалению, PyGraphviz находится во 2- й категории. Для последних, pip install будет:

  • Скачать исходники
  • Создавайте источники локально
    • Переменный ток (C++) компилятор требуется, как правило,:
      • GCC на Nix
      • VStudio on Win
    • Они могут иметь другие зависимости
  • Установите встроенные артефакты (двоичные файлы и файлы .py(c))

В качестве примечания: pip -v... включает подробный режим для текущей команды, что очень удобно при ошибках установки.

Возвращаясь к нашей проблеме: для Python 3.6 требуется VStudio 2015 ([Python.Wiki]: WindowsCompilers).
Это очень обширная тема, я рассмотрел несколько частей:

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

У меня установлено Сообщество VStudio 2015 (среди многих других версий), вы должны установить его тоже бесплатно ([MS.VStudio]: все еще хотите старую версию?).

PyGraphviz зависит от [Graphviz]: Программное обеспечение для визуализации графиков. Таким образом, во время сборки необходимо будет (части) Graphviz (который также имеет свои собственные зависимости) быть уже собранным. К сожалению, я не смог найти готовые двоичные файлы (есть [Graphviz]: Windows Packages - graphviz-2.38.zip, но это не помогает), поэтому его придется собирать вручную.

Прежде чем идти дальше:

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> "e:\Work\Dev\VEnvs\py_064_03.06.08_test0\Scripts\python.exe" -c "import pygraphviz"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'pygraphviz'

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> dir /b
other
src

Это мой главный каталог, все источники загружаются в каталог src, двоичные файлы будут помещены в каталог bin.

2. Построить Графвиз

Прежде чем начать, я хочу упомянуть, что я сильно полагаюсь на Cygwin (вам не нужно), и некоторые из моих инструментов установлены там, поэтому я буду переключаться между терминалами Cygwin и cmd (что может сбивать с толку).

[Graphviz]: Инструкция по сборке Graphviz для Windows гласит:

Для сборки на Windows:

(Версии Graphviz ≥ 2,41)

Сначала в корне хранилища выполните обновление подмодуля git --init. Это загрузит все подмодули, которые в основном являются зависимостями для сборки Windows. Затем добавьте каталог Windows\dependencies\graphviz-build-utilities в вашу переменную PATH (и перезапустите Visual Studio или приглашение, с помощью которого вы выполните msbuild после этого). Эта папка содержит инструменты Bison, Flex и SED (и будущие дополнения) с проверенными версиями. Если все прошло правильно, теперь зависимости установлены, и вы можете построить Graphviz.

Для начала нам нужно скачать все:

[[email protected]:/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz]> git clone https://gitlab.com/graphviz/graphviz.git .
Cloning into '.'...
remote: Enumerating objects: 71728, done.
remote: Counting objects: 100% (71728/71728), done.
remote: Compressing objects: 100% (19331/19331), done.
remote: Total 71728 (delta 52200), reused 71681 (delta 52157)
Receiving objects: 100% (71728/71728), 163.79 MiB | 480.00 KiB/s, done.
Resolving deltas: 100% (52200/52200), done.
Checking out files: 100% (3870/3870), done.
[[email protected]:/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz]> git submodule update --init
Submodule 'dependencies/criterion' (https://github.com/Snaipe/Criterion.git) registered for path 'dependencies/criterion'
Submodule 'windows/dependencies/graphviz-build-utilities' (https://github.com/ErwinJanssen/graphviz-build-utilities.git) registered for path 'windows/dependencies/graphviz-build-utilities'
Submodule 'windows/dependencies/libraries' (https://github.com/ErwinJanssen/graphviz-windows-dependencies.git) registered for path 'windows/dependencies/libraries'
Cloning into '/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz/dependencies/criterion'...
Cloning into '/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz/windows/dependencies/graphviz-build-utilities'...
Cloning into '/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz/windows/dependencies/libraries'...
Submodule path 'dependencies/criterion': checked out '301d143ea42c024f22b673b69c72a4cb3c8d151f'
Submodule path 'windows/dependencies/graphviz-build-utilities': checked out '050fff84ce195e0740878748760fd801eeb07b23'
Submodule path 'windows/dependencies/libraries': checked out '141d3a21be904fa8dc2ae3ed01d36684db07a35d'
[[email protected]:/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz]> git show head
commit 89292b5945933b1501293c04894ed9cf886241be (HEAD -> master, origin/master, origin/HEAD)
Merge: 429d43615 97811bd35
Author: Stephen C North <[email protected]>
Date:   Mon Feb 4 08:09:40 2019 -0500

    Merge branch 'wasbridge/graphviz-master' into HEAD

[[email protected]:/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz]> git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

В итоге вы получите каталог, который содержит ~ 320 МБ материала. Каталог содержит файл graphviz.sln, который является файлом решения VStudio (2015) и содержит 63 проекта.

Если посмотреть на пакет Pygraphviz Anaconda или Python 2.7 (встроенный), то он зависит только от cgraph.dll, который, в свою очередь, зависит от cdt.dll, поэтому для нас важны только 2 проекта. Обратите внимание, что эти 2 проекта могут не нуждаться во всех подмодулях git (поэтому каталог может быть обрезан), но я не стал исследовать дальше.

К сожалению, проекты настроены только на 32 бит (платформа Win32). 64-битный должен быть добавлен вручную (я сделал это из VStudio IDE - и также описал процесс в одном из моих ответов, на которые я ссылался). После сохранения проектов они будут показаны как измененные git:

[[email protected]:/cygdrive/e/Work/Dev/StackOverflow/q045093811/src/graphviz]> git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
  (commit or discard the untracked or modified content in submodules)

        modified:   lib/cdt/cdt.vcxproj
        modified:   lib/cgraph/cgraph.vcxproj
        modified:   windows/dependencies/graphviz-build-utilities (modified content)

no changes added to commit (use "git add" and/or "git commit -a")

3- й пункт, потому что мне нужно было сбросить некоторые разрешения безопасности для 2 исполняемых файлов (используется при сборке cgraph):

  • bison.exe
  • flex.exe

которые были установлены неправильно (скорее всего, из-за Cygwin).

Вы можете построить 2 проекта из IDE, но я выбрал командную строку ([Ms.Docs]: ссылка на командную строку MSBuild), так как считаю ее более гибкой:

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> "c:\Install\x86\Microsoft\Visual Studio Community\2015\vc\vcvarsall.bat" x64

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> set PATH=%PATH%;%CD%\src\graphviz\windows\dependencies\graphviz-build-utilities

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> msbuild src\graphviz\lib\cdt\cdt.vcxproj /t:Rebuild /p:Platform=x64;Configuration=Release;SolutionDir=%CD%\src\graphviz\;OutDir=%CD%\bin\Win\dynamic\064\UCRTv140\md\Release\graphviz\ >build_cdt_064.txt 2>&1

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> echo %errorlevel%
0

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> dir /b
bin
build_cdt.txt
other
src

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> msbuild src\graphviz\lib\cgraph\cgraph.vcxproj /t:Rebuild /p:Platform=x64;Configuration=Release;SolutionDir=%CD%\src\graphviz\;OutDir=%CD%\bin\Win\dynamic\064\UCRTv140\md\Release\graphviz\ >build_cgraph_064.txt 2>&1

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> echo %errorlevel%
0

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> dir /b "bin\Win\dynamic\064\UCRTv140\md\Release\graphviz"
cdt.dll
cdt.dll.lastcodeanalysissucceeded
cdt.exp
cdt.lib
cgraph.dll
cgraph.dll.lastcodeanalysissucceeded
cgraph.exp
cgraph.lib

Итак, у нас есть все необходимое (2.lib и 2.dll файла) для продолжения.

3. Сборка PyGraphviz

Исходники PyGraphviz (скачаны с [GitHub]: pygraphviz/pygraphviz - (pygraphviz-1.5) pygraphviz-pygraphviz-1.5.zip и) распакованы в src/pygraphviz/pygraphviz-pygraphviz-1.5.

Еще одна настройка необходима для Graphviz (вероятно, это было сделано в рамках другого проекта - шаг установки): подготовка заголовочных файлов:

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> mkdir include\graphviz

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> copy src\graphviz\lib\cdt\cdt.h include\graphviz
        1 file(s) copied.

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> copy src\graphviz\lib\cgraph\cgraph.h include\graphviz
        1 file(s) copied.

К сожалению, PyGraphviz не создает OOTB из-за [GitHub]: pygraphviz/pygraphviz - поддержка Python 3. Чтобы это исправить, [GitHub]: eendebakpt/pygraphviz - Обходной путь для PyIOBase_Type для Python2 при победе должен быть применен. Я адаптировал его для работы с текущими источниками (так как он также не работает OOTB: X() только для graphviz_wrap.cpp:

pygraphviz-1,5-все-pyiobase_b85d12ac22d39063f7dbcc396e825c563431e352.patch:

--- pygraphviz/graphviz_wrap.c.orig 2018-09-10 16:07:12.000000000 +0300
+++ pygraphviz/graphviz_wrap.c  2019-02-26 18:05:20.281741400 +0200
@@ -2988,7 +2988,18 @@


 #if PY_VERSION_HEX >= 0x03000000
-extern PyTypeObject PyIOBase_Type;
+static PyObject *PyIOBase_TypeObj;
+
+static int init_file_emulator(void)
+{
+  PyObject *io = PyImport_ImportModule("_io");
+  if (io == NULL)
+    return -1;
+  PyIOBase_TypeObj = PyObject_GetAttrString(io, "_IOBase");
+  if (PyIOBase_TypeObj == NULL)
+    return -1;
+  return 0;
+}
 #endif


@@ -3449,7 +3460,7 @@
   {
 #if PY_VERSION_HEX >= 0x03000000 || defined(PYPY_VERSION)
 #if !defined(PYPY_VERSION)
-    if (!PyObject_IsInstance(obj0, (PyObject *)&PyIOBase_Type)) {
+    if (!PyObject_IsInstance(obj0, PyIOBase_TypeObj)) {
       PyErr_SetString(PyExc_TypeError, "not a file handle");
       return NULL;
     }
@@ -3523,7 +3534,7 @@
   {
 #if PY_VERSION_HEX >= 0x03000000 || defined(PYPY_VERSION)
 #if !defined(PYPY_VERSION)
-    if (!PyObject_IsInstance(obj1, (PyObject *)&PyIOBase_Type)) {
+    if (!PyObject_IsInstance(obj1, PyIOBase_TypeObj)) {
       PyErr_SetString(PyExc_TypeError, "not a file handle");
       return NULL;
     }
@@ -6051,6 +6062,12 @@

   SWIG_InstallConstants(d,swig_const_table);

+#if PY_VERSION_HEX >= 0x03000000
+  if (init_file_emulator() < 0) {
+    return NULL;
+  }
+#endif
+
   PyDict_SetItemString(md,(char*)"cvar", SWIG_globals());
   SWIG_addvarlink(SWIG_globals(),(char*)"Agdirected",Swig_var_Agdirected_get, Swig_var_Agdirected_set);
   SWIG_addvarlink(SWIG_globals(),(char*)"Agstrictdirected",Swig_var_Agstrictdirected_get, Swig_var_Agstrictdirected_set);

Это разница (патч). См. [SO]: запускать/отлаживать UnitTests приложения Django из контекстного меню, вызываемого правой кнопкой мыши, в PyCharm Community Edition? (Ответ @CristiFati) (раздел " Патч на utrunner ") о том, как применять патчи на Win (в основном, каждая строка, начинающаяся с одного знака "+", вводится, а каждая строка, начинающаяся с одного знака "-", исчезает).

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> set _TOP_DIR=%CD%

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> pushd src\pygraphviz\pygraphviz-pygraphviz-1.5

[[email protected]:e:\Work\Dev\StackOverflow\q045093811\src\pygraphviz\pygraphviz-pygraphviz-1.5]> pushd pygraphviz && "c:\Install\x64\Cygwin\Cygwin\AllVers\bin\patch.exe" -p 1 -buNi ..\pygraphviz-1.5-all-pyiobase_b85d12ac22d39063f7dbcc396e825c563431e352.patch && popd
patching file graphviz_wrap.c

[[email protected]:e:\Work\Dev\StackOverflow\q045093811\src\pygraphviz\pygraphviz-pygraphviz-1.5]> echo %errorlevel%
0

[[email protected]:e:\Work\Dev\StackOverflow\q045093811\src\pygraphviz\pygraphviz-pygraphviz-1.5]> "e:\Work\Dev\VEnvs\py_064_03.06.08_test0\Scripts\python.exe" setup.py install --include-path=%_TOP_DIR%\include --library-path=%_TOP_DIR%\bin\Win\dynamic\064\UCRTv140\md\Release\graphviz >%_TOP_DIR%\install_pygraphviz_064.txt 2>&1

[[email protected]:e:\Work\Dev\StackOverflow\q045093811\src\pygraphviz\pygraphviz-pygraphviz-1.5]> echo %errorlevel%
0

[[email protected]:e:\Work\Dev\StackOverflow\q045093811\src\pygraphviz\pygraphviz-pygraphviz-1.5]> popd

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> set PATH=%PATH%;%CD%\bin\Win\dynamic\064\UCRTv140\md\Release\graphviz

[[email protected]:e:\Work\Dev\StackOverflow\q045093811]> "e:\Work\Dev\VEnvs\py_064_03.06.08_test0\Scripts\python.exe" -c "import pygraphviz;print(dir(pygraphviz), \"\n\", pygraphviz.graphviz._graphviz)"
['AGraph', 'Attribute', 'DotError', 'Edge', 'ItemAttribute', 'Node', '__all__', '__author__', '__builtins__', '__cached__', '__date__', '__doc__', '__file__', '__license__', '__loader__', '__name__', '__package__', '__path__', '__revision__', '__spec__', '__version__', 'absolute_import', 'agraph', 'division', 'graphviz', 'print_function', 'release', 'test', 'tests', 'version']
 <module '_graphviz' (e:\Work\Dev\VEnvs\py_064_03.06.08_test0\lib\site-packages\pygraphviz\_graphviz.cp36-win_amd64.pyd)>

Как видно, модуль был успешно импортирован.

Как примечание, 2.dll-зависимости (из предыдущего раздела) должны быть доступны при импорте модуля, поэтому их каталог добавляется в% PATH%.
Конечно, это всего лишь (отсталый) обходной путь (Gainarie), это не должно происходить каждый раз, когда приходится работать с пакетом.

Я не знаю (пока), как дать команду setup.py также скопировать их в каталог build/install пакета, поэтому в качестве альтернативы (также обходного пути) нужно вручную скопировать их в каталог установки pygraphviz (рядом с _graphviz.cp36). -win_amd64.pyd, который (в моем случае): "e:\Work\Dev\VEnvs\py_064_03.06.08_test0\lib\site-packages\pygraphviz").

4. Ярлык

Поскольку весь процесс сложен и требует много ручных вмешательств и взломов, мне удалось собрать (с небольшими изменениями setup.py) пакет (wheel).

Я не знаю простого способа сделать его общедоступным, поэтому (хотя я знаю, что это плохая практика) я загрузил его на [GitHub]: CristiFati/Prebuilt-Binaries - (master) Prebuilt-Binaries/Windows/PyGraphviz/pygraphviz-1.5-cp36-cp36m-win_amd64.whl.
Вы можете скачать его, а затем установить как (это один из способов):

"C:\Path\to\Python-3.6-amd64\pip" install "C:\Path\to\downloaded\pygraphviz-1.5-cp36-cp36m-win_amd64.whl"

Примечание: это работает и для сред Anaconda!

Ответ 3

Решено это на Windows 10 64-bit и Python 3.6.

шаги:

  1. Загрузите Graphviz для Windows с сайта Graphiviz.
  2. Добавьте путь к папке Graphviz bin C:\Program Files (x86)\Graphviz2.38\bin в путь Windows.
  3. Закройте и снова откройте свои терминалы, чтобы изменения пути были распознаны.
  4. Загрузите колесо Graphviz Python 3.6.
  5. Установите колесо графика.

    pip install graphviz-0.8.3-py2.py3-none-any.whl

  6. Готово!

Ответ 4

Вот что сработало для меня:

Win 7 AMD64

  • Установите компилятор MSFT С++.
  • Установите Anaconda для Win AMD64, Python3.
  • Установите graphviz для Win.
  • Добавьте C:\Program Files (x86)\Graphviz2.38\bin в переменную среды PATH.
  • Загрузите pygraphviz-1.3.1-cp34-none-win_amd64.whl.
  • Создайте среду Conda с Python версии 3.4: conda create --name digraphs python=3.4 anaconda.
  • Введите среду: activate digraphs.
  • Установите pygraphviz с помощью pip: pip install pygraphviz-1.3.1-cp34-none-win_amd64.whl.
  • Пример выполнения: python ./gviz_simple.py.
  • Выход из среды: deactivate

Я положил кое-что на github об этом. Это беспорядочно, используйте на свой страх и риск: https://github.com/darkhipo/Easy-Digraph-Draw