Почему pydot не может найти исполняемые файлы GraphViz в Windows 8?

У меня есть GraphViz 2.32, установленный в Windows 8 и добавленный C:\Program Files (x86)\Graphviz2.32\bin в переменную System PATH. Тем не менее pydot не может найти свои исполняемые файлы.

Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    graph.write_png('example1_graph.png')
  File "build\bdist.win32\egg\pydot.py", line 1809, in <lambda>
    lambda path, f=frmt, prog=self.prog : self.write(path, format=f, prog=prog))
  File "build\bdist.win32\egg\pydot.py", line 1911, in write
    dot_fd.write(self.create(prog, format))
  File "build\bdist.win32\egg\pydot.py", line 1953, in create
    'GraphViz\ executables not found' )
InvocationException: GraphViz executables not found

Я нашел этот https://code.google.com/p/pydot/issues/detail?id=65, но не смог решить проблему.

Ответ 1

Это произошло потому, что я установил graphviz после того, как установил pydot. Следовательно, пидот не смог его найти. Переустановка в правильном порядке решила проблему.

Ответ 2

Проблема в том, что путь к GraphViz не был найден модулем pydot, как показано в traceback:

'GraphViz\executables not found'

Я решил эту проблему на моем компьютере с Windows 7, добавив каталог bin Graphize на мой компьютер PATH. Затем перезапустите мою среду python, чтобы использовать обновленный путь.

  • Установите GraphViz, если вы еще этого не сделали (я использовал загрузку MSI)
  • Получить путь для gvedit.exe(для меня это было "C:\Program Files (X86)\Graphviz2.34\Bin\")
  • Добавьте этот путь к компьютеру PATH
  • Один из способов получить настройки среды для установки вашего пути - щелкнуть по каждой из этих кнопок/параметров меню: start- > computer- > system properties- > advanced settings- > переменные окружения
  • Нажмите Изменить путь пользователя
  • Добавьте эту строку в конец списка значений переменных (включая точка с запятой): ; C:\Program Files (x86)\Graphviz2.34\bin
  • Нажмите "ОК"
  • Перезапустите вашу среду разработки на Python

Ответ 3

На Mac brew install graphviz решена проблема для меня.

Ответ 5

Я попытался добавить PATH через панель управления, но также потребуется перезапустить командную строку. Следующее также работает для обновления пути в сеансе Notebook без выхода:

import os     

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

Ответ 6

Вам нужно установить из Graphviz, а затем просто добавить путь к папке, где вы установили Graphviz и его каталог bin в путь системных сред.

Ответ 7

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

1 Загрузите и установите graphviz-2.38.msi https://graphviz.gitlab.io/_pages/Download/Download_windows.html

2 Установите переменную пути

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

  1. Перезапустите ваше текущее работающее приложение, которое требует путь

Ответ 8

Добавьте dot.exe к вашему пути. щелкните правой кнопкой мыши мой компьютеp > расширенные системные настройки > переменные среды > высокий свет "путь" > изменить затем добавьте все в кавычки к пути "; C:\Program Files (x86)\Graphviz2.34\bin \" в зависимости от того, где вы установили Graphviz ofcourse. Затем перезапустите оболочку python и введите.

  

import pydot     pydot.find_graphviz()     Удостоверьтесь, что после "bin" есть косая черта, поэтому он получает все изнутри папки, я пытался с помощью косой черты, и приведенный выше код ничего не возвращал, однако после добавления косой черты он возвращал необходимые ему графические исполняемые файлы и их пути.

  

Ответ 9

Я работаю на Windows 10 с Anaconda 3.6.5. У меня нет прав администратора, поэтому, если кто-то находится в таких обстоятельствах, как я, это решение отлично работает.

Путь к моему графику выглядит следующим образом C:\Users\User_Name\AppData\Local\Continuum\anaconda3\Library\bin\graphviz

В Spyder или в Jupyter введите следующее:

import os os.environ['PATH'].split(os.pathsep) Здесь будут перечислены все пути в вашей среде. Посмотрите на них, если ваш путь к графу не здесь, а затем найдите его и скопируйте путь, как показано выше в моем примере. Затем введите следующее: os.environ['PATH'] += os.pathsep + 'C:\\Users\\User_Name\\AppData\\Local\\Continuum\\anaconda3\\Library\\bin\\graphviz'

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

Ответ 10

Для меня: (Win10, Anaconda3) Убедитесь, что вы сделали "conda install graphviz"

Мне нужно добавить в PATH: C:\Users\имя_пользователя\Anaconda3\Library\bin\graphviz

Чтобы изменить PATH, перейдите в Панель управления > Система и безопасность > Системa > Расширенные настройки системы > Переменные среды > Путь > Изменить > Новый

УБЕДИТЕСЬ, ЧТОБЫ ОСТАНОВИТЬ СВОЮ IDE ПОСЛЕ ЭТОГО. Он должен работать

Ответ 11

В Windows, даже после установки graphviz-2.38.msi, вы можете добавить свой собственный путь в pydot.py(найденный в папке сайта-пакета)

 if os.sys.platform == 'win32':

    # Try and work out the equivalent of "C:\Program Files" on this
    # machine (might be on drive D:, or in a different language)
    #

    if os.environ.has_key('PROGRAMFILES'):

        # Note, we could also use the win32api to get this
        # information, but win32api may not be installed.

        path = os.path.join(os.environ['PROGRAMFILES'], 'ATT', 'GraphViz', 'bin')

    else:

        #Just in case, try the default...
        path = r"C:\PYTHON27\GraphViz\bin"  # add here.

Ответ 12

У меня тоже была такая же проблема, и я, наконец, разрешил ее, посмотрев на библиотеку.

Библиотека считает, что путь задан как C:\Program Files\ATT\Graphviz\bin, но по умолчанию Graphviz установлен в C:\Program Files (x86)\Graphviz, проходящий 32- следовательно, pydot не удается получить требуемый путь. Просто переместите каталог в соответствии с требованиями script, и вам будет удобно идти.

P.S.: - Рассмотрите возможность внесения эквивалентных изменений в переменную Environmnet.

P.S.S: - Также проверьте, находится ли Graphviz непосредственно в Program Files (x86) или под ATT.

Ответ 13

Я использую компьютер с Windows 10 и у меня тоже были проблемы. Я установил graphviz через установщик MSI. Добавление через Системные настройки у меня не сработало.

Я удалил установку с помощью MSI и использовал Chocolatey, менеджер пакетов Windows. Удаление установленной версии необходимо, иначе Chocolatey не установится.

Теперь все работает нормально. Я бы порекомендовал сделать это таким образом.

Ответ 14

Вот что я сделал для вышеупомянутой проблемы. Я использую Windows 10 OS и Python 3.6.5

  1. Установите PIP, нажав здесь

  2. откройте командную строку и введите команду "pip install graphviz"

  3. перейдите на мой компьютер (этот компьютер) и выполните поиск по ключевому слову "graphviz"

  4. откройте папку graphviz, скопируйте ее путь и сохраните в блокноте

  5. В Graphviz найдите папку bin и скопируйте ее, щелкнув правой кнопкой мыши

  6. теперь снова возвращайтесь к моему компьютеру и ищите "pydotplus"

  7. папка с именем pydotplus отображается. Откройте его и вставьте копию папки bin (Graphviz), которую вы скопировали ранее

  8. перейдите к панели управления> система и безопасность> настройки системы> дополнительные настройки> переменные среды> добавить новый путь

  9. добавить путь, который вы скопировали в блокноте и нажмите серию "ОК"

что теперь вы можете наслаждаться использованием graphviz

Ответ 16

Некоторые вещи, которые нужно знать о графике:

  1. graphviz - это не только модуль Python, но и отдельная программа. Я считаю, что вам нужно, чтобы оба графвиза работали.
  2. Автономная программа graphviz была первоначально разработана AT & T, с открытым исходным кодом, а затем заброшена. Текущие сопровождающие пакета забыли включить записи реестра Windows, чтобы Python мог найти исполняемый файл программы.
  3. Строка 620 файла pydotplus\graphviz.py содержит путь к резервной копии для поиска graphviz, если он не найден в реестре. Он использует старый путь к файлу ATT. Обновите путь к файлу до того, что находится на вашем компьютере (вам понадобятся права администратора), и Graphviz должен работать с pydotplus.

Пример:

# Just in case, try the default... path = r"C:\Program Files (x86)\Graphviz2.38\bin"

Ответ 17

В файле "pydot.py" (расположенном в... \Anaconda3\Lib\site-packages) замените:

def get_executable_extension():
    # type: () -> str
    if is_windows():
        return '.bat' if is_anacoda() else '.exe'
    else:
        return ''

с помощью:

def get_executable_extension():
    # type: () -> str
    if is_windows():
        return '.exe'
    else:
        return ''

Похоже, нет никакого смысла добавлять ".bat", когда система "Windows/Anaconda" против "Windows", и, возможно, ".bat" не связан с ".exe". Это кажется лучше, чем добавление ".bat" для каждого исполняемого вызова pydot...

Ответ 18

У меня была эта проблема и я заметил, что она печатала мой PATH двумя наборами двойных кавычек. Я работал над проблемой, добавив следующую строку в строку 1959:

C:\Anaconda\Lib\site-packages\pydot.py

self.progs[prog] = os.path.normpath(self.progs[prog][1:-1])

Очевидно, что это не лучшее исправление, но мне это удалось через день.

Ответ 20

Пробовал всю последовательность инсталляции, как описано во всех решениях/публикации/блогах, наконец понял, что анаконда не смог прочитать переменные среды. Закрытая Анаконда и Spyder. Затем открыл Anaconda в режиме администратора (на компьютере с 64-разрядной ОС Windows), а затем открыл Spyder. Script отлично работал с вызовами PYDOT.

Ответ 21

Я не пользуюсь машиной Windows, я на платформе Linux. Я столкнулся с этой проблемой "исполняемый файл не найден" в контексте использования пакета pyAgrum для построения графиков байесовских сетей. pyAgrum использует graphviz для построения сетей. Я установил pyagrum и graphviz, используя платформу anaconda в среде python 3.6.4 (т.е. conda install <package name>).

Я нашел исполняемые файлы в /conda/envs/<environment name>/bin. Так что это было просто вопрос заставить ядро моего ноутбука найти их.

Если вы import os, используйте команду os.environ['PATH'].split(os.pathsep) чтобы увидеть пути к исполняемым файлам, которые ищет ваша среда. Если путь, содержащий ваши исполняемые файлы graphviz, отсутствует, вы можете добавить его, выполнив следующие действия: os.environ['PATH'] += os.pathsep + <path to executables>.

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

Ответ 22

Вы можете использовать pydotplus вместо pydot.then, следуя приведенным ниже инструкциям:

Сначала найдите C:\Users\zhangqianyuan\AppData\Local\Programs\Python\Python36\Lib\site-packages\pydotplus

Во-вторых, откройте graphviz.py

В-третьих, найдите строку 1925 - строка 1972, найдите функцию def create(self, prog=None, format='ps'):

Финал, в функции:

  1. находить:

    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])
        )
    
  2. между двумя блоками добавьте это (ваш путь к исполняемому файлу Graphviz):

    self.progs[prog] = "C: /Program Files (x86)/Graphviz2.38/bin/gvedit.exe"

  3. после добавления получается результат:

    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])
        )
    
  4. сохраните измененный файл, и вы сможете запустить его успешно.

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

Ответ 23

Если вы не хотите возиться с переменными пути (например, если вы не являетесь администратором), и если вы работаете с Windows, вы можете сделать следующее, что решило проблему для меня.

Откройте graphviz.py (вероятно, находится в ...Anaconda\pkgs\graphviz***\Library\bin) в редакторе. Если вы не можете найти его, вы можете открыть его через сообщение об ошибке.

Перейдите в fuction __find_executables и замените:

elif os.path.exists(os.path.join(path, prg + '.exe')):
   if was_quoted:
      progs[prg] = '"' + os.path.join(path, prg + '.exe') + '"'
   else:
      progs[prg] = os.path.join(path, prg + '.exe')

с

elif os.path.exists(os.path.join(path, prg + '.bat')):
   if was_quoted:
      progs[prg] = '"' + os.path.join(path, prg + '.bat') + '"'
   else:
      progs[prg] = os.path.join(path, prg + '.bat')

Ответ 24

Решение простое, вам просто нужно скачать и установить Graphviz, здесь.

Затем установите переменную path в каталог bin, в моем случае это было C:\Program Files (x86)\Graphviz2.38\bin. Наконец, сделайте conda install python-graphviz, и он должен работать нормально.