Im running a code that needs pydot and graphviz. I am using python 3.5 and 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.
I googled a little then found that I can install pydot with the code pip install pydot
. But I know get this error. I am noob in ubuntu and I dont understand what to do. so how do I install 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'
python-pydot and graphviz are in the default Ubuntu repositories in all currently supported versions of Ubuntu. In all currently supported versions of Ubuntu, open the terminal and type:
This flowchart was created with graphviz in Ubuntu. Because graphviz uses the built-in dot programming language which is included in the graphviz package, the source code of the linked flowchart is editable in any text editor even if python-pydot is not installed.
I don't know why you would want to install pydot with pip when you can get it from the Ubuntu repositories, but to answer your question I tried installing pydot anyway in a Python virtual environment with
pip3 install pydot
and it worked, so it is possible that you need to update pip to the latest version withsudo -H pip3 install --upgrade pip
. I usedpip3
instead ofpip
because you wrote in your question that you are using Python 3.5.From this answer on "Installing pydot and graphviz packages in Anaconda environment"
Because you use python 3, the right command would be
pip3 install pydot graphviz
. You can install pip3 usingsudo apt install python3-pip
.On Ubuntu 17.10, the ff fixed the issue: