Я вижу много вопросов о трудностях правильной установки 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.
Почему?