web-dev-qa-db-fra.com

Installation de Graphviz pour une utilisation avec Python 3 sur Windows 10

J'ai donc eu Python 3.6 sur mon ordinateur Windows 10 pendant un certain temps maintenant, et aujourd'hui je viens de télécharger et d'installer le graphviz 0.8.2 ( https: // pypi .python.org/pypi/graphviz ) package via la ligne de commande admin avec:

pip3 install graphviz

Ce n'est qu'après ce point que j'ai téléchargé le fichier d'installation Graphviz 2.38 MSI et installé le programme sur:

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

Alors j'ai essayé d'exécuter ce simple programme Python:

from graphviz import Digraph

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.render('round-table.gv', view=True)

Mais malheureusement, j'ai reçu l'erreur suivante lorsque j'essaie d'exécuter mon programme Python à partir de la ligne de commande:

Traceback (most recent call last):
  File "C:\Program Files\Python36\lib\site-packages\graphviz\backend.py", line 124, in render
    subprocess.check_call(args, startupinfo=STARTUPINFO, stderr=stderr)
  File "C:\Program Files\Python36\lib\subprocess.py", line 286, in check_call
    retcode = call(*popenargs, **kwargs)
  File "C:\Program Files\Python36\lib\subprocess.py", line 267, in call
    with Popen(*popenargs, **kwargs) as p:
  File "C:\Program Files\Python36\lib\subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "C:\Program Files\Python36\lib\subprocess.py", line 997, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\foldername\testing.py", line 11, in <module>
    dot.render('round-table.gv', view=True)
  File "C:\Program Files\Python36\lib\site-packages\graphviz\files.py", line 176, in render
    rendered = backend.render(self._engine, self._format, filepath)
  File "C:\Program Files\Python36\lib\site-packages\graphviz\backend.py", line 127, in render
    raise ExecutableNotFound(args)
graphviz.backend.ExecutableNotFound: failed to execute ['dot', '-Tpdf', '-O', 'round-table.gv'], make sure the Graphviz executables are on your systems' PATH

Remarquez comment ce que j'ai demandé semble TRÈS similaire à cette question posée ici: "RuntimeError: Assurez-vous que les exécutables Graphviz sont sur le chemin de votre système" après l'installation de Graphviz 2.38

Mais pour une raison quelconque, l'ajout de ces chemins (suggérés dans les solutions sur le lien ci-dessus) aux variables système ne fonctionne pas, et je ne sais pas pourquoi! J'ai également essayé de redémarrer l'ordinateur après avoir ajouté les chemins, sans succès. Voir l'image ci-dessous:

enter image description here

Bien que l'autre solution suggérée, qui consistait à ajouter ces quelques lignes devant mon Python, l'a fait fonctionne:

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

Mais voici le problème: je ne comprends pas pourquoi l'ajout aux variables d'environnement n'a pas fonctionné, et c'est ma principale préoccupation. Ma question est donc la suivante: pourquoi l'ajout de ces lignes de code devant le script Python a-t-il fonctionné mais pas les variables d'environnement? Que dois-je faire pour que mon script s'exécute sans ajouter ces lignes de code devant?

7
ereHsaWyhsipS

Pouvez-vous s'il vous plaît publier la sortie que vous obtenez lorsque vous tapez SET dans une fenêtre cmd après avoir défini la variable d'environnement PATH?

Contient-il C:/Program Files (x86)/Graphviz2.38/bin/?

Une fenêtre cmd doit être redémarrée avant que les variables d'environnement mises à jour deviennent effectives!

6
Michael P