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'
pip install pydot>=1.2.4
ysudo apt-get install graphviz
.Respuestas:
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:
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 pydot
y funcionó, por lo que es posible que necesita actualizar pip a la última versión consudo -H pip3 install --upgrade pip
. Lo usé enpip3
lugar depip
porque escribiste en tu pregunta que estás usando Python 3.5.fuente
python-
y lo mismo para los paquetes PIP3 sus nombres de paquetes en los repositorios de Ubuntu generalmente están precedidospython3-
pip
es 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 unvirtualenv
; no a los paquetes de sitio del sistema.De esta respuesta en "Instalación de paquetes pydot y graphviz en el entorno de Anaconda"
fuente
Debido a que usa Python 3, el comando correcto sería
pip3 install pydot graphviz
. Puede instalar pip3 usandosudo apt install python3-pip
.fuente
ln -s /path/to/pip3 /path/to/pip
En Ubuntu 17.10, el ff solucionó el problema:
fuente