Ответ 1
Это произошло потому, что я установил graphviz после того, как установил pydot. Следовательно, пидот не смог его найти. Переустановка в правильном порядке решила проблему.
У меня есть 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, но не смог решить проблему.
Это произошло потому, что я установил graphviz после того, как установил pydot. Следовательно, пидот не смог его найти. Переустановка в правильном порядке решила проблему.
Проблема в том, что путь к GraphViz не был найден модулем pydot, как показано в traceback:
'GraphViz\executables not found'
Я решил эту проблему на моем компьютере с Windows 7, добавив каталог bin Graphize на мой компьютер PATH. Затем перезапустите мою среду python, чтобы использовать обновленный путь.
На Mac brew install graphviz
решена проблема для меня.
в моем случае ответ от Садика ошибка pydot и graphviz: не удалось импортировать dot_parser, загрузка файлов точек не будет возможна работала для меня на Ubuntu 12.04.5 LTS
sudo apt-get install python-pydot
Я попытался добавить PATH через панель управления, но также потребуется перезапустить командную строку. Следующее также работает для обновления пути в сеансе Notebook без выхода:
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'
Вам нужно установить из Graphviz, а затем просто добавить путь к папке, где вы установили Graphviz и его каталог bin в путь системных сред.
Для 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"
Добавьте dot.exe к вашему пути. щелкните правой кнопкой мыши мой компьютеp > расширенные системные настройки > переменные среды > высокий свет "путь" > изменить затем добавьте все в кавычки к пути "; C:\Program Files (x86)\Graphviz2.34\bin \" в зависимости от того, где вы установили Graphviz ofcourse. Затем перезапустите оболочку python и введите.
import pydot pydot.find_graphviz() Удостоверьтесь, что после "bin" есть косая черта, поэтому он получает все изнутри папки, я пытался с помощью косой черты, и приведенный выше код ничего не возвращал, однако после добавления косой черты он возвращал необходимые ему графические исполняемые файлы и их пути.
Я работаю на 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'
Это все, но обратите внимание, что вы должны запускать эти команды каждый раз, когда вы перезапускаете ядро
Для меня: (Win10, Anaconda3) Убедитесь, что вы сделали "conda install graphviz"
Мне нужно добавить в PATH: C:\Users\имя_пользователя\Anaconda3\Library\bin\graphviz
Чтобы изменить PATH, перейдите в Панель управления > Система и безопасность > Системa > Расширенные настройки системы > Переменные среды > Путь > Изменить > Новый
УБЕДИТЕСЬ, ЧТОБЫ ОСТАНОВИТЬ СВОЮ IDE ПОСЛЕ ЭТОГО. Он должен работать
В 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.
Библиотека считает, что путь задан как 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.
Я использую компьютер с Windows 10 и у меня тоже были проблемы. Я установил graphviz через установщик MSI. Добавление через Системные настройки у меня не сработало.
Я удалил установку с помощью MSI и использовал Chocolatey, менеджер пакетов Windows. Удаление установленной версии необходимо, иначе Chocolatey не установится.
Теперь все работает нормально. Я бы порекомендовал сделать это таким образом.
Вот что я сделал для вышеупомянутой проблемы. Я использую Windows 10 OS и Python 3.6.5
Установите PIP, нажав здесь
откройте командную строку и введите команду "pip install graphviz"
перейдите на мой компьютер (этот компьютер) и выполните поиск по ключевому слову "graphviz"
откройте папку graphviz, скопируйте ее путь и сохраните в блокноте
В Graphviz найдите папку bin и скопируйте ее, щелкнув правой кнопкой мыши
теперь снова возвращайтесь к моему компьютеру и ищите "pydotplus"
папка с именем pydotplus отображается. Откройте его и вставьте копию папки bin (Graphviz), которую вы скопировали ранее
перейдите к панели управления> система и безопасность> настройки системы> дополнительные настройки> переменные среды> добавить новый путь
добавить путь, который вы скопировали в блокноте и нажмите серию "ОК"
что теперь вы можете наслаждаться использованием graphviz
установить Graphviz здесь и добавить его путь в бин решил мою проблему
https://graphviz.gitlab.io/_pages/Download/Download_windows.html
pip install Графвиз сам по себе кажется неадекватным
Некоторые вещи, которые нужно знать о графике:
Пример:
# Just in case, try the default... path = r"C:\Program Files (x86)\Graphviz2.38\bin"
В файле "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...
У меня была эта проблема и я заметил, что она печатала мой PATH двумя наборами двойных кавычек. Я работал над проблемой, добавив следующую строку в строку 1959:
C:\Anaconda\Lib\site-packages\pydot.py
self.progs[prog] = os.path.normpath(self.progs[prog][1:-1])
Очевидно, что это не лучшее исправление, но мне это удалось через день.
Я нашел решение для руководства: sudo apt-get install graphviz
graph.write( 'test.dot') dot -Tps test.dot -o outfile.ps
Вы можете здесь: https://github.com/jecs89/LearningEveryDay/tree/master/GP
Пробовал всю последовательность инсталляции, как описано во всех решениях/публикации/блогах, наконец понял, что анаконда не смог прочитать переменные среды. Закрытая Анаконда и Spyder. Затем открыл Anaconda в режиме администратора (на компьютере с 64-разрядной ОС Windows), а затем открыл Spyder. Script отлично работал с вызовами PYDOT.
Я не пользуюсь машиной 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>
.
Я думаю, что это решение будет работать вне моего контекста. Основным недостатком этого решения является то, что вам нужно делать это каждый раз, когда вы перезапускаете ядро.
Вы можете использовать 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'):
Финал, в функции:
находить:
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])
)
между двумя блоками добавьте это (ваш путь к исполняемому файлу Graphviz):
self.progs[prog] = "C: /Program Files (x86)/Graphviz2.38/bin/gvedit.exe"
после добавления получается результат:
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])
)
сохраните измененный файл, и вы сможете запустить его успешно.
Вам лучше сохранить его как файл BMP, потому что файл PNG не будет работать.
Если вы не хотите возиться с переменными пути (например, если вы не являетесь администратором), и если вы работаете с 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')
Решение простое, вам просто нужно скачать и установить Graphviz, здесь.
Затем установите переменную path в каталог bin, в моем случае это было C:\Program Files (x86)\Graphviz2.38\bin
. Наконец, сделайте conda install python-graphviz
, и он должен работать нормально.