Подтвердить что ты не робот

Графические исполняемые файлы не найдены (Python 3.4)

Я запускаю Python3.4 в Windows 7. Я пытаюсь использовать интерфейс Python для graphviz. Это script я намерен запустить:

from graphviz import Digraph
import pydotplus

dot = Digraph(comment='The Round Table')

dot.node('A', 'King Arthur')
dot.node('B', 'Sir Bedevere the Wise')
dot.node('L', 'Sir Lancelot the Brave')
dot.edges(['AB', 'AL'])
dot.edge('B', 'L', constraint='false')

print(dot.source)
dot.render('test-output/round-table.gv', view=True)

Во время выполнения появляется следующая ошибка:

RuntimeError: failed to execute ['dot', '-Tpdf', '-O', 'test-output/round-table.gv'], make sure the Graphviz executables are on your systems' path

Теперь я уверен, что правильно установил правильные зависимости. Сначала я попытался установить правильные переменные среды. Исполняемые файлы graphviz расположены в C:\Program Files (x86)\Graphviz2.37\bin, поэтому я перешел в раздел "Переменные среды". Здесь есть два раздела: пользовательские переменные и системные переменные. В разделе "Системные переменные" я нажал на Путь, а затем нажал Edit и добавил ; C:\Program Files (x86)\Graphviz2.37\bin в конец строки и спасены. Это не устранило ошибку.

Затем, после ответа здесь, я удалил pydot (на самом деле я использую pydotplus здесь) и снова установил его, но все равно не добился успеха.

Я пытался часами исправлять это, и вся переменная PATH просто путается и расстраивает.

4b9b3361

Ответ 1

Как представляется, известно, что в Graphviz2.37 есть проблемы с переменной PATH в Windows. Я удалил его, удалил переменные окружения, связанные с ним, и вместо этого скачал и установил более новую бета-версию 2.39, и теперь она работает как чудо.

Ответ 2

В моем случае (Win10, Anaconda3, Jupyter notebook) после "conda install graphviz" мне нужно добавить в PATH: C:\Users\username\Anaconda3\Library\bin\graphviz

Чтобы изменить PATH goto Control Panel > System and Security > System > Advanced System Settings > Environment Variables > Path > Edit > New

Ответ 3

На jupyter (ipython) ноутбуке с anaconda в win10 я решил проблему conda install graphviz после того, как я установил graphviz pip install graphviz

Ответ 4

У меня также была проблема с Ubuntu 16.04.

Исправлено при запуске sudo apt-get install graphviz в дополнение к установке pip, которую я уже выполнил.

Ответ 5

когда вы добавляете C:\Program Files (x86)\Graphviz2.38\bin в PATH, тогда вы должны закрыть среду IDE, такую ​​как spyder и restart, вы решите "RuntimeError: убедитесь, что исполняемые файлы Graphviz на пути к вашим системам"

Ответ 6

Я решил установить его непосредственно из https://graphviz.gitlab.io/_pages/Download/Download_windows.html и включить в путь к окну:

C:\Program Files (x86)\Graphviz2.38\bin

C:\Program Files (x86)\Graphviz2.38

После перезапуска Windows

Ответ 7

Чтобы решить эту проблему, когда вы успешно установите graphviz2.38, добавьте переменную PATH в системный путь. В системные переменные вы можете нажать "Путь", а затем нажать "Изменить" и добавить: C:\Program Files (x86)\Graphviz2.38\bin до конца строки и сохранить. После этого перезапустите свой pythonIDE, как spyper, тогда он работает хорошо.

Не забудьте закрыть Spyder и перезагрузиться.

Ответ 8

Поскольку Mac OS не упоминается, я добавлю, что у меня была такая же проблема для OS X Yosemite, решение, которое я нашел, состояло в том, чтобы сделать brew install graphviz

Это решило проблему, не уверен, что я не должен был просто редактировать один из других ответов в этом списке, потому что все они кажутся одинаковыми, просто установите официальный пакет в дополнение к библиотеке Python.

Ответ 9

Для Windows 8.1 и python 2.7 я исправил проблему, выполнив следующие шаги

1. Загрузите и установите graphviz-2.38.msi http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.38.msi

2. Задайте переменную пути

  • Панель управления > Система и безопасность > Системa > Расширенные системные настройки > Переменные среды > Путь > Изменить
  • добавить 'C:\Program Files (x86)\Graphviz2.38\bin'

Ответ 10

У меня была такая же проблема с Windows 10.

Сначала я установил graphviz-2.38.0 со следующей командой без проблем...

install -c anaconda graphviz=2.38.0

Во-вторых, я установил pydotplus со следующей командой без проблем...

install -c conda-forge pydotplus

После этого, когда я добрался до своего шага для визуализации моего дерева решений, возникла следующая проблема с {InvocationException: GraphViz executables not found}...

C:\Users\admin\Anaconda3\lib\site-packages\pydotplus\graphviz.py in create(self, prog, format)
   1958             if self.progs is None:
   1959                 raise InvocationException(
-> 1960                     'GraphViz\ executables not found')
   1961 
   1962         if prog not in self.progs:

InvocationException: GraphViz executables not found

В моем случае все, что я должен был сделать, чтобы исправить это, заключается в том, чтобы поместить путь среды к исполняемым файлам graphviz в мою переменную окружения user PATH, и это исправило это. Просто убедитесь, что это путь, в котором находятся файлы YOUR.exe:)

C:\Users\admin\Anaconda3\pkgs\graphviz-2.38.0-4\Library\bin\graphviz

Ответ 11

Просто установите

conda install graphviz

затем установите

conda install -c conda-forge pydotplus

Ответ 12

Если вы используете Win10, установите Graphviz и затем используйте следующую команду, чтобы добавить путь.

import os
os.environ["PATH"] += os.pathsep + 'C:\Program Files (x86)\Graphviz2.38/bin/'

Ответ 13

Обратите внимание, что я использую Windows 10. Некоторые из следующих могут или не могут применяться для других версий Windows или операционных систем:

** Заметка 2: **
"Адрес файла bin для Graphviz в вашей системе" может быть C:\Program Files (x86)\Graphviz2.38\bin или любым другим путем, который вы установили в Graphviz.

У нас проблемы не только с Graphviz, но и с другими внешними EXE файлами, которые мы хотим использовать в Jupyter.
Причина в том, что когда jupyter хочет импортировать пакет, он ищет его в рабочем каталоге, а когда ему не удается найти пакет, он возвращает такие ошибки.
Что мы можем сделать, это решить следующее:
1) проверьте, установлен ли Graphviz в вашей системе, и если нет, вы можете скачать и установить его с:

https://graphviz.gitlab.io/_pages/Download/Download_windows.html
а затем установите его. При установке Graphviz помните, где (в какой папке) вы его устанавливаете. Если вы видите вышеупомянутую ошибку при использовании

import graphviz

тогда у вас есть несколько вариантов:

2) Вы можете вызвать .exe файл в ipynb через

import os
os.environ["PATH"] += os.pathsep + r'the Graphviz bin file address on your system'

По моему опыту, он работает только для того же ipynb, с которым я работаю, и каждый раз, когда я открываю блокнот, мне нужно вызывать эти строки кода.

3) Если вам нужен Jupyter, где найти исполняемый файл, вам нужно указать путь к среде.
В Windows 10 вы можете сделать это следующим образом:
Панель управления> Система и безопасность> Система> Расширенные настройки системы> Переменные среды> Путь> Изменить> Создать
и затем добавьте "адрес файла bin Graphviz в вашей системе". В Windows 8 или ниже перейдите к:
Панель управления> Система и безопасность> Система> Расширенные настройки системы> Переменные среды
и затем добавьте; (точка с запятой) + "адрес файла bin в вашей системе Graphviz" в конец строки пути
Примечание. Не забудьте перезагрузить компьютер.

4) и даже если это не работает, определите переменную, идущую в:
Панель управления> Система и безопасность> Система> Дополнительные параметры системы> Переменные среды, а затем:

Start to define an environmental variable

Затем определите переменную следующим образом: Remember to name the variable Graphviz

Не забудьте назвать переменную Graphviz. Наконец перезагрузите ваш компьютер и надеюсь, что он работает.

Ответ 14

У меня была такая же проблема на Ubuntu (14.04) с Jupyter.

Чтобы решить эту проблему, я добавил библиотеку точек в python sys.path

Сначала: проверьте, установлена ​​ли точка,

Тогда: найти свой путь whereis dot → /local/notebook/miniconda2/envs/ik2/bin/dot

Наконец, в python script: sys.path.append( "/local/notebook/miniconda2/envs/ik2/bin/dot" )

Ответ 15

Я использую Windows 10, Python 3.6 на Anaconda 3 и столкнулся с той же проблемой.

Я работал, выполняя следующие действия:

  • От терминала Anaconda: pip install pydotplus
  • От терминала Anaconda: conda install pydotplus
  • От терминала Anaconda: pip install graphviz
  • От терминала Anaconda: conda install graphviz
  • Перешел в среду Windows Varialbes, PATH и добавил местоположение моего файла dot.exe в каталоге graphviz в Anaconda.

работал после этого.

Ответ 16

Пожалуйста, используйте pydotplus вместо pydot

  1. Найти: C:\Users\zhangqianyuan\AppData\Local\Programs\Python\Python36\Lib\site-packages\pydotplus

  2. Открыть graphviz.py

  3. Найти строку 1925 - строка 1972, найти функцию:

    def create(self, prog=None, format='ps'):
    
  4. В функции найдите:

    if prog not in self.progs:
        raise InvocationException(
            'GraphViz\ executable "%s" not found' % prog)
    
    if not os.path.exists(self.progs[prog]) or \
            not os.path.isfile(self.progs[prog]):
        raise InvocationException(
            'GraphViz\ executable "{}" is not'
            ' a file or doesn\'t exist'.format(self.progs[prog])
        )
    
  5. Между двумя блоками добавьте это (ваш путь к исполняемому файлу Graphviz):

      self.progs[prog] = "C:/Program Files (x86)/Graphviz2.38/bin/gvedit.exe"'
    
  6. После добавления получается результат:

    if prog not in self.progs:
        raise InvocationException(
            'GraphViz\ executable "%s" not found' % prog)
    
    self.progs[prog] = "C:/Program Files (x86)/Graphviz2.38/bin/gvedit.exe"
    
    if not os.path.exists(self.progs[prog]) or \
            not os.path.isfile(self.progs[prog]):
        raise InvocationException(
            'GraphViz\ executable "{}" is not'
            ' a file or doesn\'t exist'.format(self.progs[prog])
        )
    
  7. сохраните измененный файл, и вы сможете запустить его успешно.

  8. Вам лучше сохранить его как файл BMP, потому что файл PNG не будет работать. картина здесь