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). Я просто документирую это здесь для будущих посетителей страницы:
Предварительные условия:
- колесо (должно присутствовать по умолчанию в более новых дистрибутивах)
- Правильная сборка Windows pygraphviz (неофициальные сборки). На Win7 x64 я выбрал "pygraphviz-$ version-cp34 ‑ none ‑ win_amd64.whl". (Обратите внимание
cp34
с указанием версии Python.) - Установщик Graphviz версии 2.38 (для которого построен вышеупомянутый диск)
шаги:
- Запустите установщик Graphviz
- Добавьте папку Graphviz\bin в пользовательский или системный PATH
- Проверка: откройте командную строку и выполните
twopi -V
, Вы должны увидеть версию Graphviz, напечатанную на консоли. - Теперь перейдите в вашу среду Python (например, запустив
anaconda.bat
подскажите где можно запуститьpython
) - Бежать
pip install pygraphviz‑*$version*-cp34‑none‑win_amd64.whl
- Вы сделали:) Запустите пример сценария, чтобы увидеть, все ли прошло хорошо.
На этом сайте вы найдете множество готовых к установке пакетов: http://www.lfd.uci.edu/~gohlke/pythonlibs/ включая те, которые вы пытались установить. Я знаю, что слишком поздно с ответом, но я только что стал участником.
Сначала вы можете установить "easy_install" (посмотрите, как использовать "easy_install" в Python для Windows ... это не так просто), тогда потребуется 2 пакета: "python-pygraph" и "libgv-python".