¿Cómo instalar pydot y graphviz?

24

Estoy ejecutando un código que necesita pydot y graphviz. Estoy usando python 3.5 y ubuntu 16.04 LTS 64 bit.

  File "/usr/local/lib/python3.5/dist-packages/keras/utils/vis_utils.py", line 17, in _check_pydot
    raise ImportError('Failed to import pydot. You must install pydot'
ImportError: Failed to import pydot. You must install pydot and graphviz for `pydotprint` to work.

Busqué en Google un poco y luego descubrí que puedo instalar pydot con el código pip install pydot. Pero sé que aparece este error. Soy novato en ubuntu y no entiendo qué hacer. Entonces, ¿cómo instalo pydot?

deeplearning@deep-learning-virtual-machine:~$ pip install pydot
Collecting pydot
Collecting pyparsing>=2.1.4 (from pydot)
  Using cached pyparsing-2.2.0-py2.py3-none-any.whl
Installing collected packages: pyparsing, pydot
  Found existing installation: pyparsing 2.0.3
    Uninstalling pyparsing-2.0.3:
Exception:
Traceback (most recent call last):
  File "/usr/lib/python3.5/shutil.py", line 538, in move
    os.rename(src, real_dst)
PermissionError: [Errno 13] Permission denied: '/usr/lib/python3/dist-packages/__pycache__/pyparsing.cpython-35.pyc' -> '/tmp/pip-45miiuxw-uninstall/usr/lib/python3/dist-packages/__pycache__/pyparsing.cpython-35.pyc'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/local/lib/python3.5/dist-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/usr/local/lib/python3.5/dist-packages/pip/req/req_set.py", line 778, in install
    requirement.uninstall(auto_confirm=True)
  File "/usr/local/lib/python3.5/dist-packages/pip/req/req_install.py", line 754, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/usr/local/lib/python3.5/dist-packages/pip/req/req_uninstall.py", line 115, in remove
    renames(path, new_path)
  File "/usr/local/lib/python3.5/dist-packages/pip/utils/__init__.py", line 267, in renames
    shutil.move(old, new)
  File "/usr/lib/python3.5/shutil.py", line 553, in move
    os.unlink(src)
PermissionError: [Errno 13] Permission denied: '/usr/lib/python3/dist-packages/__pycache__/pyparsing.cpython-35.pyc'
Kong
fuente
1
pip install pydot>=1.2.4y sudo apt-get install graphviz.
Ioannis Filippidis

Respuestas:

38

python-pydot y graphviz se encuentran en los repositorios predeterminados de Ubuntu en todas las versiones compatibles de Ubuntu. En todas las versiones actualmente compatibles de Ubuntu, abra la terminal y escriba:

sudo apt install python-pydot python-pydot-ng graphviz # python-pydot-ng isn't in the 14.04 repos

Este diagrama de flujo fue creado con graphviz en Ubuntu. Debido a que graphviz usa el lenguaje de programación de puntos incorporado que se incluye en el paquete graphviz, el código fuente del diagrama de flujo vinculado es editable en cualquier editor de texto, incluso si python-pydot no está instalado.

No sé por qué querrías instalar pydot con pip cuando puedes obtenerlo de los repositorios de Ubuntu, pero para responder a tu pregunta, intenté instalar pydot de todos modos en un entorno virtual de Python pip3 install pydoty funcionó, por lo que es posible que necesita actualizar pip a la última versión con sudo -H pip3 install --upgrade pip. Lo usé en pip3lugar de pipporque escribiste en tu pregunta que estás usando Python 3.5.

karel
fuente
wow gracias :) He estado siguiendo tus comentarios mientras lo actualizabas. Finalmente funcionó. Supongo que necesito buscar más en google en ubuntu. pip, pip3, apt, apt-get ... todo es muy confuso.
Kong
En Ubuntu muchos paquetes de PyPI están incluidos en los repositorios de Ubuntu por defecto y sus nombres de paquetes son generalmente precedidos python-y lo mismo para los paquetes PIP3 sus nombres de paquetes en los repositorios de Ubuntu generalmente están precedidospython3-
Karel
Instalar paquetes directamente desde PyPI pipes el enfoque recomendado: la última versión (los repositorios de Ubuntu pueden estar desactualizados), administrarse con un archivo de requisitos cuando sea apropiado e instalarse en un virtualenv; no a los paquetes de sitio del sistema.
Ioannis Filippidis
6

De esta respuesta en "Instalación de paquetes pydot y graphviz en el entorno de Anaconda"

Tuve el mismo problema y lo resolví por (el orden es importante ):

  1. Instalación graphviz, simplemente a través desudo apt-get install graphviz
  2. Instalación graphvizpara Python a través de condasudo ~/anaconda2/bin/conda install graphviz
  3. Finalmente, instalando pydotusando condasudo ~/anaconda2/bin/conda install pydot

Esta respuesta está atrasada, pero esta publicación me ayudó (junto con esta que menciona el orden de instalación), así que espero que esta respuesta ayude a alguien más. Estoy usando Ubuntu 14.04 y Python 2.7.

PD aparentemente, podría haber algunos problemas con el paso 1 del algoritmo anterior, esta publicación menciona cómo solucionarlos.

Emmie Jackson
fuente
2
Por favor no plagiar. No va en contra de las reglas del sitio, pero ciertamente no es genial. En cambio, puede copiar y pegar respuestas y atribuir su fuente. Editaré tu respuesta para demostrar.
wjandrea
3

Debido a que usa Python 3, el comando correcto sería pip3 install pydot graphviz. Puede instalar pip3 usando sudo apt install python3-pip.

Casper Gerritsen
fuente
1
o simplementeln -s /path/to/pip3 /path/to/pip
Ioannis Filippidis
0

En Ubuntu 17.10, el ff solucionó el problema:

sudo apt-get install python3-pydot graphviz
sudo pip3 install pydot_ng
rowel
fuente