Python: проблемы установки с pygraphviz и graphviz

Я вижу много вопросов о трудностях правильной установки pygraphviz и graphviz в Windows для Python 2.7. Но никаких ответов, которые я нашел, не решает мою проблему. Вот что я сделал:

  • Сначала я установил pygraphviz с использованием неофициальных оконных двоичных файлов с этой ссылкой в моей папке anaconda (python) ( C:\Users\chamar\AppData\Local\Continuum\Anaconda)
  • Загрузили graphviz-2.36.msi и установили его по умолчанию путь C:\Program Files (x86)\Graphviz2.36

Работает команда import pygraphviz в Python. Но когда я хочу использовать эту функцию nx.graphviz_layout, я получаю raise ValueError("Program %s not found in path."%prog)

Что может вызвать эту проблему, так это то, что pygraphviz не может найти путь к graphviz. Теперь, поскольку я установил pygraphviz с использованием неофициального двоичного файла Windows, какой файл можно изменить, чтобы связать путь library и include для graphviz? Вы обычно находите в setup.py из pygraphviz путей library и include, когда вы не используете неофициальные двоичные файлы.

ОБНОВЛЕНИЕ 1

Я добавил в PATH в Regedit в SOFTWARE папку GRAPHIZ с новым key (по умолчанию) со значением C:\Program Files (x86)\Graphviz2.36\bin

ОБНОВЛЕНИЕ 2

У меня была ошибка в файле pydot.py относительно сложности Python, определяющего путь Graphviz. Я внес изменения следующим образом:

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'}

Это похоже на меня, но когда я выполняю, скажите:

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

Я получаю:

    Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  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.

Почему?

Ответ 1

Вот шаги, которые я выполнил, чтобы заставить pygraphviz работать на Python 3.4 (я думаю, если вы выполните аналогичные шаги, он должен работать на Python 2.x). Я просто документирую это здесь для будущих посетителей страницы:

Предварительные условия:

  1. колесо (должно присутствовать по умолчанию в новых дистрибутивах)
  2. Правильная сборка Windows pygraphviz (неофициальные сборки). На Win7 x64 я выбрал "pygraphviz- $ version -cp34 ‑none ‑ win_amd64.whl". (Обратите внимание на cp34 указывающий версию Python.)
  3. Установщик Graphviz версии 2.38 (для которого построен вышеупомянутый диск)

шаги:

  1. Запустите установщик Graphviz
  2. Добавьте папку Graphviz\bin в пользовательский или системный PATH
  3. Проверка: откройте командную строку и выполните twopi -V. Вы должны увидеть версию Graphviz, напечатанную на консоли.
  4. Теперь перейдите в свою среду Python (например, запустив anaconda.bat, подсказку, где вы можете запустить python)
  5. Запустите pip install pygraphviz‑*$version*-cp34‑none‑win_amd64.whl
  6. Вы сделали :) Запустите пример сценария, чтобы увидеть, все ли прошло хорошо.

Ответ 2

На этом сайте вы найдете множество готовых пакетов: http://www.lfd.uci.edu/~gohlke/pythonlibs/, включая те, которые вы пытались установить. Я знаю, что слишком поздно с ответом, но я только что стал участником.