我正在运行需要 pydot 和 graphviz 的代码。我使用的是 python 3.5 和 ubuntu 16.04 LTS 64 位。
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.
我谷歌了一下,然后发现我可以使用代码安装 pydot pip install pydot
。但我知道会出现这个错误。我是 ubuntu 新手,我不知道该怎么做。那么我该如何安装 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'
答案1
python-pydot 和 graphviz 位于所有当前支持的 Ubuntu 版本的默认 Ubuntu 存储库中。在所有当前支持的 Ubuntu 版本中,打开终端并输入:
sudo apt install python3-pydot graphviz
这流程图是在 Ubuntu 中使用 graphviz 创建的。由于 graphviz 使用 graphviz 包中包含的内置 dot 编程语言,因此即使未安装 python-pydot,也可以在任何文本编辑器中编辑链接流程图的源代码。
我不知道为什么你会想要用 pip 安装 pydot,而你可以从 Ubuntu 存储库中获取它,但为了回答你的问题,我尝试在 Python 虚拟环境中安装 pydot 并且pip3 install pydot
成功了,所以你可能需要用 将 pip 更新到最新版本sudo -H pip3 install --upgrade pip
。我使用了pip3
而不是 ,pip
因为你在问题中写道你正在使用 Python 3.5。
答案2
从这个答案关于“在 Anaconda 环境中安装 pydot 和 graphviz 包”
我遇到了同样的问题,并通过以下方式解决了它(顺序是重要的):
- 安装
graphviz
,只需通过sudo apt-get install graphviz
- 通过 conda安装
graphviz
Pythonsudo ~/anaconda2/bin/conda install graphviz
- 最后,
pydot
使用 conda安装sudo ~/anaconda2/bin/conda install pydot
这个答案已经过期了,但这篇文章帮助了我(连同这个提到安装顺序),所以希望这个答案能帮助别人。我使用的是 Ubuntu 14.04 和 Python 2.7。
PS:显然,上述算法的第一步可能存在一些问题,这个帖子提到如何修复它们。
答案3
因为你使用的是 python 3,所以正确的命令是pip3 install pydot graphviz
。你可以使用 安装 pip3 sudo apt install python3-pip
。
答案4
在 Ubuntu 17.10 上,ff 修复了该问题:
sudo apt-get install python3-pydot graphviz
sudo pip3 install pydot_ng