Resuelva los ejecutables de Graphviz No se encuentran el error en Python

Olorunfemi Akinlua 15 febrero 2024
Resuelva los ejecutables de Graphviz No se encuentran el error en Python

Graphviz es un paquete de software con herramientas de código abierto que ayudan a dibujar gráficos y está disponible en Linux, Windows y macOS.

Dentro de Python, podemos crear gráficos con los ejecutables de Graphviz junto con el paquete. Sin embargo, las personas a menudo se meten en problemas al usarlo por diferentes razones.

Este artículo explica cómo resolver el error No se encuentran los ejecutables de Graphviz al ejecutar nuestros scripts de Python.

Instale Graphviz para resolver el error No se encuentran los ejecutables de Graphviz en Python

Antes de mostrarle cómo resolver el error, escribamos un código para crear un gráfico simple utilizando el paquete Graphviz Python (suponiendo que haya instalado el paquete Graphviz Python).

import graphviz

dot = graphviz.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.edges(["AB", "AL"])
dot.edge("B", "L", constraint="false")
print(dot.source)
dot.render("doctest-output/round-table.gv", view=True)

La salida del código anterior:

// The Round Table
digraph {
    A [label="King Arthur"]
    B [label="Sir Bedevere the Wise"]
    L [label="Sir Lancelot the Brave"]
    A -> B
    A -> L
    B -> L [constraint=false]
}

Traceback (most recent call last):
  File "C:\Python310\lib\site-packages\graphviz\backend\execute.py", line 81, in run_check
    proc = subprocess.run(cmd, **kwargs)
  File "C:\Python310\lib\subprocess.py", line 501, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\Python310\lib\subprocess.py", line 969, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Python310\lib\subprocess.py", line 1438, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "c:\Users\akinl\Documents\HTML\python\graphz.py", line 11, in <module>
    dot.render('doctest-output/round-table.gv', view=True)
  File "C:\Python310\lib\site-packages\graphviz\_tools.py", line 171, in wrapper
    return func(*args, **kwargs)
  File "C:\Python310\lib\site-packages\graphviz\rendering.py", line 122, in render
    rendered = self._render(*args, **kwargs)
  File "C:\Python310\lib\site-packages\graphviz\_tools.py", line 171, in wrapper
    return func(*args, **kwargs)
  File "C:\Python310\lib\site-packages\graphviz\backend\rendering.py", line 324, in render
    execute.run_check(cmd,
  File "C:\Python310\lib\site-packages\graphviz\backend\execute.py", line 84, in run_check
    raise ExecutableNotFound(cmd) from e
graphviz.backend.execute.ExecutableNotFound: failed to execute WindowsPath('dot'), make sure the Graphviz executables are on your systems' PATH

La parte importante del mensaje de error es la siguiente:

graphviz.backend.execute.ExecutableNotFound: failed to execute WindowsPath('dot'), make sure the Graphviz executables are on your systems' PATH

El problema es que los ejecutables de Graphviz no están disponibles para el código de Python y no están presentes en la variable RUTA. La variable RUTA nos permite acceder al software desde cualquier directorio además del directorio ejecutable del software.

Por lo tanto, si no tiene Graphviz, debe instalarlo. Debes agregarlo a la RUTA de tu sistema si lo tienes instalado.

En consecuencia, necesitamos dos cosas para ejecutar un código Graphviz con éxito.

  1. La Biblioteca
  2. El Software en sí

Ya tenemos la biblioteca vía pip:

pip install graphviz

Para instalar Graphviz, vaya a su página de descarga y siga las instrucciones de descarga para cada sistema operativo. Para el sistema operativo Linux (por ejemplo, Ubuntu, Fedora), puede usar los siguientes comandos:

sudo apt install graphviz
sudo yum install graphviz

Para macOS, puede usar el siguiente comando.

sudo port install graphviz

Sin embargo, si tiene Homebrew instalado, puede usar:

brew install graphviz

Existen diferentes medios y procesos para instalarlo para Windows, a través de Chocolatey, Windows Package Manager, Cygwin o paquetes típicos de Windows. Aquí, usaremos el paquete de instalación típico (versión 5.0.0 de 64 bits) que ocupa aproximadamente 4.728 MB.

  1. Abra el archivo de instalación y acepte el acuerdo de licencia.

    Configuración de Graphviz

  2. Agregue Graphviz al sistema PATH, que es muy importante para que su código funcione. Dependiendo de su entorno de trabajo, puede agregar el sistema RUTA para todos los usuarios o usuarios actuales.

    La siguiente imagen selecciona para todos los usuarios.

    Opciones de instalación

  3. Seleccione la ubicación de instalación e instale.

    Seleccione la ubicación de instalación

Para verificar que Graphviz está dentro de nuestra variable de entorno, podemos seguir los siguientes pasos:

  1. Busque variables de entorno.

    Buscar variables de entorno

  2. Vaya al botón resaltado Variables de entorno.

    Variables de entorno

  3. Vaya a la fila resaltada con el nombre de variable Ruta y haga doble clic en ella.

    Seleccionar ruta

  4. Si instaló Graphviz recientemente, debe usar la ruta de instalación (resaltada) hacia el final, como en la imagen a continuación

    Editar variable de entorno

Ahora que hemos verificado que Graphviz está dentro de la ruta de nuestro sistema como lo sugiere una subparte del mensaje de error, “asegúrese de que los ejecutables de Graphviz estén en la RUTA de su sistema”, cierre su IDE y vuelva a ejecutar su código basado en Graphviz .

El código que ejecutamos anteriormente que resultó en un error ahora debería procesarse y exportarse en PDF.

Exportación de PDF

Y su salida debe ser sin ningún error.

// The Round Table
digraph {
    A [label="King Arthur"]
    B [label="Sir Bedevere the Wise"]
    L [label="Sir Lancelot the Brave"]
    A -> B
    A -> L
    B -> L [constraint=false]
}
Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

Artículo relacionado - Python Error