如何安装pydot和graphviz?

Kon*_*ong 35 python3 software-installation pip 16.04

我正在运行一个需要 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.
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了一下,然后发现我可以用代码安装 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'
Run Code Online (Sandbox Code Playgroud)

kar*_*rel 50

python-pydot 和 graphviz 位于所有当前支持的 Ubuntu 版本的默认 Ubuntu 存储库中。在所有当前支持的 Ubuntu 版本中,打开终端并输入:

sudo apt install python-pydot python-pydot-ng graphviz # python-pydot-ng isn't in the 14.04 repos
Run Code Online (Sandbox Code Playgroud)

流程图是在 Ubuntu 中使用 graphviz 创建的。由于graphviz 使用graphviz 包中包含的内置dot 编程语言,因此即使未安装python-pydot,链接流程图的源代码也可以在任何文本编辑器中进行编辑。

当您可以从 Ubuntu 存储库中获取 pydot 时,我不知道您为什么要使用 pip 安装它,但是为了回答您的问题,我尝试在 Python 虚拟环境中安装 pydotpip3 install pydot并且它工作正常,因此您有可能需要将 pip 更新到最新版本sudo -H pip3 install --upgrade pip。我使用pip3而不是pip因为您在问题中写道您正在使用 Python 3.5。


小智 10

这个关于“在 Anaconda 环境中安装 pydot 和 graphviz 包”的答案

我遇到了同样的问题并通过(顺序很重要)解决了它:

  1. 安装graphviz,只需通过sudo apt-get install graphviz
  2. graphviz通过 conda安装Pythonsudo ~/anaconda2/bin/conda install graphviz
  3. 最后,通过pydot使用 conda安装sudo ~/anaconda2/bin/conda install pydot

这个答案是过期的,但是这个帖子(连同帮我这一个是提到的安装顺序),所以希望这个答案可以帮助别人。我使用的是 Ubuntu 14.04 和 Python 2.7。

PS显然,上述算法的第1步可能存在一些问题,这篇文章提到了如何修复它们。

  • 请不要抄袭。这不违反网站规则,但肯定不酷。相反,您可以复制粘贴答案并确定其来源。我将编辑您的答案以进行演示。 (2认同)