web-dev-qa-db-fra.com

Pourquoi pydot ne parvient-il pas à trouver les exécutables de GraphViz dans Windows 8?

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.

58
web_ninja

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.

28
web_ninja

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.

  1. Installez GraphViz si vous ne l'avez pas déjà fait (j'ai utilisé le téléchargement de MSI)
  2. Obtenez le chemin pour gvedit.exe (pour moi c'était "C:\Program Files (X86)\Graphviz2.34\bin \")
  3. Ajouter ce chemin au chemin d'accès de l'ordinateur
  4. Une façon d’arriver aux paramètres d’environnement pour définir votre chemin consiste à cliquer sur chacune de ces options de menu/bouton: démarrer-> ordinateur-> système Propriétés-> paramètres avancés-> variables d’environnement
  5. Cliquez sur Modifier le chemin de l'utilisateur
  6. Ajoutez cette chaîne à la fin de votre liste de valeurs de variables (y compris les virgules ):; C:\Program Files (x86)\Graphviz2.34\bin
  7. Cliquez sur OK
  8. Redémarrez votre IDE Python
58
LectureMaker

Sur Mac, brew install graphviz a résolu le problème pour moi.

57
nanvel

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

20
naoko

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/'
18
GtotheB

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.

8
Sanjay Bhosale

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'

  1. Redémarrez votre application en cours d'exécution qui nécessite le chemin
7
Jayani Sumudini

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

3
officialgupta

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.

3
user2592414

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.
2
user1098761

Moi aussi j'ai eu le même problème et je l'ai finalement résolu en jetant un coup d'œil à la bibliothèque.

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. 

2
Saurav Joshi

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.

1

Voici ce que j'ai fait pour le problème mentionné ci-dessus. J'utilise Windows 10 os et python 3.6.5

  1. Installez PIP en en cliquant ici

  2. ouvrir la commande Invite et tapez la commande "pip install graphviz"

  3. aller sur mon ordinateur (ce pc) et rechercher avec le mot clé "graphviz"

  4. ouvrez le dossier graphviz, copiez son chemin et enregistrez-le dans le bloc-notes 

  5. Dans graphviz, recherchez le dossier bin et copiez-le en cliquant avec le bouton droit de la souris.

  6. maintenant à nouveau, retournez sur mon ordinateur et recherchez "pydotplus"

  7. 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

  8. 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

  9. 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

1
Mohana Krishna

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. 

1
nerdbeere

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')
0
horseshoe

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.

0
user10116669

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.

0
mikestanleymth

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

0
mac

Quelques choses à savoir sur graphviz:

  1. graphviz n'est pas seulement un module python, c'est aussi un programme autonome. Je crois que vous avez besoin des deux pour faire fonctionner graphviz.
  2. Le programme autonome Graphviz a été développé à l'origine par AT & T, en source ouverte, puis abandonné. Les responsables actuels du paquetage ont oublié d'inclure les entrées de registre Windows afin que Python puisse trouver l'exécutable du programme.
  3. La ligne 620 de pydotplus\graphviz.py inclut un chemin de sauvegarde permettant de rechercher graphviz s’il ne figure pas dans le registre. Il utilise l'ancien chemin du fichier ATT. Mettez à jour le chemin du fichier vers ce qui est sur votre ordinateur (vous aurez besoin des privilèges d'administrateur) et graphviz devrait fonctionner avec pydotplus.

Exemple:

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

0
Stever530

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:

  1. 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])
        )
    
  2. 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"

  3. 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])
        )
    
  4. enregistrer le fichier modifié, vous pourrez alors l'exécuter avec succès.

  5. vous feriez mieux de l'enregistrer en tant que fichier bmp car le fichier png ne fonctionnera pas. picture is here

0
张乾元

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 ...

0
Jacques

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

0
jecs89

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.

0
user836107

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.

0
Dan Dye