J'ai GraphViz 2.32 installé dans Windows 8 et ai ajouté C:\Program Files (x86)\Graphviz2.32\bin à la variable System PATH. Encore pydot est incapable de trouver ses exécutables.
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\'s executables not found' )
InvocationException: GraphViz's executables not found
J'ai trouvé ceci https://code.google.com/p/pydot/issues/detail?id=65 mais je ne parviens pas à résoudre le problème.
C'est arrivé parce que j'avais installé graphviz après avoir installé pydot. Par conséquent, pydot n'a pas pu le trouver. Le réinstaller dans le bon ordre a résolu le problème.
Le problème est que le chemin d'accès à GraphViz n'a pas été trouvé par le module pydot comme indiqué dans le traceback:
"Les exécutables de GraphViz sont introuvables"
J'ai résolu ce problème sur mon ordinateur Windows 7 en ajoutant le répertoire bin GraphViz au chemin PATH de mon ordinateur. Puis, redémarrez mon python IDE pour utiliser le chemin mis à jour.
Sur Mac, brew install graphviz
a résolu le problème pour moi.
dans mon cas, réponse de Sadik erreur pydot et graphviz: impossible d'importer dot_parser, le chargement des fichiers de points ne sera pas possible a fonctionné pour moi sous Ubuntu 12.04.5 LTS
Sudo apt-get install python-pydot
J'ai essayé d'ajouter PATH via le Panneau de configuration, mais il est également nécessaire de redémarrer l'invite de commande. Ce qui suit fonctionne aussi pour mettre à jour le chemin dans une session Notebook sans quitter:
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'
Vous devez installer à partir de Graphviz puis ajouter simplement le chemin du dossier où vous avez installé Graphviz et son répertoire bin au chemin des environnements système.
Pour Windows 8.1 et Python 2.7, j'ai résolu le problème en suivant les étapes ci-dessous
1 . Téléchargez et installez graphviz-2.38.msi https://graphviz.gitlab.io/_pages/Download/Download_windows.html
2 Définir la variable de chemin
Panneau de configuration> Système et sécurité> Système> Paramètres système avancés> Variables d'environnement> Chemin> Modifier Ajouter 'C:\Fichiers de programme (x86)\Graphviz2.38\bin'
Pour moi: (Win10, Anaconda3) Assurez-vous que vous avez bien terminé "conda install graphviz"
Je dois ajouter à la variable PATH: C:\Users\nom d'utilisateur\Anaconda3\Library\bin\graphviz
Pour modifier PATH, sélectionnez Panneau de configuration> Système et sécurité> Système> Paramètres système avancés> Variables d'environnement> Chemin> Modifier> Nouveau.
ASSUREZ-VOUS DE REDÉMARRER VOTRE IDE APRÈS CETTE . Cela devrait fonctionner
Ajoutez dot.exe à votre chemin . Cliquez avec le bouton droit de la souris sur mon ordinateur> paramètres système avancés> variables d’environnement> "itinéraire" en surbrillance> modifier Puis ajoutez tout ce qui est entre guillemets vers le chemin "; C:\Program Files (x86 )\Graphviz2.34\bin\"selon le lieu où vous avez installé Graphviz ofcourse.Puis redémarrez le shell Python et tapez.
importer pydot pydot.find_graphviz () Assurez-vous qu'il y a une barre oblique après 'bin' afin que tout se trouve dans le dossier. J'ai essayé sans barre oblique et le code ci-dessus ne renvoyait rien. Cependant, après l'ajout de la barre oblique, il a renvoyé les exécutables graphviz dont il avait besoin et leurs chemins.
Sous Windows, même après avoir installé graphviz-2.38.msi, vous pouvez ajouter votre propre chemin dans pydot.py (situé sous le dossier site-package).
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.
La bibliothèque considère que le chemin doit être défini comme C:\Program Files\ATT\Graphviz\bin mais par défaut, Graphviz est installé sur C:\Program Files (x86)\Graphviz en respectant les critères 32 bits. par conséquent, pydot ne parvient pas à obtenir le chemin requis . Décalez simplement le répertoire comme requis par le script et vous voilà prêt à partir.
P.S. :- Envisagez d’apporter les mêmes modifications à la variable Environmnet.
P.S.S: - Vérifiez également si Graphviz est directement sous Program Files (x86) ou sous ATT.
Je travaille sur Windows 10 avec Anaconda 3.6.5. Je n'ai pas les droits d'administrateur, donc si quelqu'un est dans des circonstances comme moi, cette solution fonctionne parfaitement.
Le chemin pour mon graphviz est regarde C:\Users\User_Name\AppData\Local\Continuum\anaconda3\Library\bin\graphviz
Dans Spyder ou Jupyter, tapez ce qui suit:
import os
os.environ['PATH'].split(os.pathsep)
Ceci listera tout le chemin dans votre environnement. Jetez un coup d'oeil à eux, si votre chemin graphviz n'est pas ici, allez le trouver et copiez le chemin, comme ci-dessus dans mon exemple ..__, puis tapez ce qui suit: os.environ['PATH'] += os.pathsep + 'C:\\Users\\User_Name\\AppData\\Local\\Continuum\\anaconda3\\Library\\bin\\graphviz'
C'est tout, mais notez que vous devez exécuter ces commandes à chaque fois si vous redémarrez le noyau.
Voici ce que j'ai fait pour le problème mentionné ci-dessus. J'utilise Windows 10 os et python 3.6.5
Installez PIP en en cliquant ici
ouvrir la commande Invite et tapez la commande "pip install graphviz"
aller sur mon ordinateur (ce pc) et rechercher avec le mot clé "graphviz"
ouvrez le dossier graphviz, copiez son chemin et enregistrez-le dans le bloc-notes
Dans graphviz, recherchez le dossier bin et copiez-le en cliquant avec le bouton droit de la souris.
maintenant à nouveau, retournez sur mon ordinateur et recherchez "pydotplus"
un dossier nommé pydotplus est affiché. Ouvrez-le et collez la copie du dossier bin (de Graphviz) que vous avez copiée précédemment
tête dans le panneau de configuration> Système et sécurité> Paramètres système> Paramètres avancés> Variables d'environnement> Ajouter un nouveau chemin
ajoutez le chemin que vous avez copié dans le bloc-notes et cliquez sur une série de "ok"
ça y est, vous pouvez profiter de graphviz
J'utilise une machine Windows 10 et j'ai eu quelques problèmes aussi. J'ai installé graphviz via l'installateur de msi. L'ajout via les paramètres du système n'a pas fonctionné pour moi.
J'ai supprimé l'installation avec le msi et utilisé chocolatey , un gestionnaire de paquets Windows . Il est nécessaire de supprimer la version installée, sinon Chocolatey ne pourra pas installer.
Maintenant ça fonctionne bien. Je recommanderais de le faire de cette façon.
Si vous ne voulez pas vous occuper des variables de chemin (par exemple, si vous n'êtes pas un administrateur) et si vous travaillez sur Windows, vous pouvez procéder comme suit, ce qui a résolu le problème pour moi.
Ouvrez graphviz.py
(probablement situé dans ...Anaconda\pkgs\graphviz***\Library\bin
) dans un éditeur. Si vous ne le trouvez pas, vous pourrez peut-être l'ouvrir via le message d'erreur.
Aller à la fonction __find_executables
et remplacer:
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')
avec
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')
La solution est simple, il vous suffit de télécharger et d'installer Graphviz à partir de ici .
Puis définissez la variable path dans le répertoire bin, dans mon cas c’était C:\Program Files (x86)\Graphviz2.38\bin
. Enfin, faites le conda install python-graphviz
et cela devrait fonctionner correctement.
Je n'utilise pas de machine Windows, je suis sur une plate-forme Linux. J'ai rencontré ce problème d'exécutable non trouvé dans le contexte de l'utilisation du package python pyAgrum pour tracer des réseaux bayésiens. pyAgrum utilise graphviz pour tracer les réseaux. J'ai installé pyagrum et graphviz en utilisant la plate-forme anaconda dans un environnement python 3.6.4 (c'est-à-dire conda install <package name>
).
J'ai trouvé les exécutables dans le répertoire /conda/envs/<environment name>/bin
. Il suffisait donc que mon noyau de cahier les trouve.
Si vous import os
, utilisez la commande os.environ['PATH'].split(os.pathsep)
pour voir les chemins des fichiers exécutables dans lesquels votre environnement est à la recherche. Si le chemin contenant vos exécutables graphviz n'y figure pas, vous pouvez l'ajouter en procédant comme suit: os.environ['PATH'] += os.pathsep + <path to executables>
.
J'imagine que cette solution fonctionnera en dehors de mon contexte. Le principal inconvénient de cette solution est que vous devez le faire chaque fois que vous redémarrez le noyau.
installer Graphviz ici et ajouter son chemin bin a résolu mon problème
https://graphviz.gitlab.io/_pages/Download/Download_windows.html
pip installer Graphviz lui-même semble insuffisant
Quelques choses à savoir sur graphviz:
Exemple:
# Just in case, try the default... path = r"C:\Program Files (x86)\Graphviz2.38\bin"
vous pouvez utiliser pydotplus au lieu de pydot.Alors suivez les instructions suivantes:
D'abord, trouvez C:\Users\zhangqianyuan\AppData\Local\Programs\Python\Python36\Lib\site-packages\pydotplus
Deuxièmement, ouvrez graphviz.py
Troisièmement, recherchez les lignes 1925 à 1972, recherchez la fonction def create(self, prog=None, format='ps'):
Final, dans la fonction:
trouver:
if prog not in self.progs:
raise InvocationException(
'GraphViz\'s executable "%s" not found' % prog)
`
if not os.path.exists(self.progs[prog]) or \
not os.path.isfile(self.progs[prog]):
raise InvocationException(
'GraphViz\'s executable "{}" is not'
' a file or doesn\'t exist'.format(self.progs[prog])
)
entre les deux blocs, ajoutez ceci (le chemin de l'exécutable de votre Graphviz):
self.progs[prog] = "C:/Program Files (x86)/Graphviz2.38/bin/gvedit.exe"
après avoir ajouté le résultat est:
if prog not in self.progs:
raise InvocationException(
'GraphViz\'s 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\'s executable "{}" is not'
' a file or doesn\'t exist'.format(self.progs[prog])
)
enregistrer le fichier modifié, vous pourrez alors l'exécuter avec succès.
vous feriez mieux de l'enregistrer en tant que fichier bmp car le fichier png ne fonctionnera pas.
Dans "pydot.py" (situé dans ...\Anaconda3\Lib\site-packages), remplacez:
def get_executable_extension():
# type: () -> str
if is_windows():
return '.bat' if is_anacoda() else '.exe'
else:
return ''
avec:
def get_executable_extension():
# type: () -> str
if is_windows():
return '.exe'
else:
return ''
Il ne semble pas y avoir de raison d’ajouter ".bat" lorsque le système est "Windows/Anaconda" vs "Windows" et qu’il peut ne pas y avoir de ".bat" associé au ".exe". Cela semble mieux que d'ajouter un ".bat" à chaque appel pydot exécutable ...
J'ai trouvé une solution manuelle: Sudo apt-get install graphviz
graph.write ('test.dot') point -Tps test.dot -o outfile.ps
Vous pouvez trouver les fichiers ici: https://github.com/jecs89/LearningEveryDay/tree/master/GP
Essayé toute la séquence d'installation décrite dans tous les solutions/posting/blogs, finalement réalisé anaconda n'était pas capable de lire les variables d'environnement Fermé Anaconda et Spyder. Anaconda a ensuite été ouvert en mode Administrateur (sur un ordinateur fonctionnant sous Windows 64 bits), puis a ouvert Spyder. Le script a bien fonctionné avec les appels PYDOT.
J'avais ce problème et j'ai remarqué qu'il imprimait mon PATH avec deux jeux de guillemets. J'ai corrigé le problème en ajoutant ce qui suit à la ligne 1959 de:
C:\Anaconda\Lib\site-packages\pydot.py
self.progs[prog] = os.path.normpath(self.progs[prog][1:-1])
De toute évidence, ce n’est pas la meilleure solution, mais cela m’a fait passer la journée.