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

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

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

Команда import pygraphviz в питоне работает. Но когда я хочу использовать, скажем, эту функцию 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.

Зачем?

3 ответа

Решение

Вот шаги, которые я выполнил, чтобы заставить 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. Вы сделали:) Запустите пример сценария, чтобы увидеть, все ли прошло хорошо.

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

Сначала вы можете установить "easy_install" (посмотрите, как использовать "easy_install" в Python для Windows ... это не так просто), тогда потребуется 2 пакета: "python-pygraph" и "libgv-python".

Другие вопросы по тегам