如何安装pydot和graphviz?


24

我正在运行需要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.

我在Google上搜索了一下,然后发现可以使用代码安装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
pip install pydot>=1.2.4sudo apt-get install graphviz
Ioannis Filippidis

Answers:


38

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

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

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


哇谢谢:)我一直在关注您的评论,因为您对其进行了更新。终于成功了。猜猜我需要在ubuntu上更多地谷歌搜索。pip,pip3,apt,apt-get ...所有这些都超级令人困惑。
香港

在Ubuntu中,许多来自PyPI的软件包都包含在默认的Ubuntu存储库中,并且它们的软件包名称通常以python-pip3软件包开头。类似地,对于pip3软件包,它们在Ubuntu仓库中的软件包名称通常以开头python3-
karel

pip推荐的方法是直接从PyPI安装软件包:最新版本(Ubuntu存储库可能已过时),在适当时使用需求文件进行管理,并安装到virtualenv而不是系统的站点软件包。
艾奥尼斯·菲利皮迪斯(Oonisnis Filippidis),

6

来自“在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
请不要窃。这不违反站点规则,但是肯定不酷。相反,您可以复制粘贴答案并为其来源归类。我将编辑您的答案以进行演示。
wjandrea

3

因为您使用的是python 3,所以正确的命令应该是pip3 install pydot graphviz。您可以使用安装pip3 sudo apt install python3-pip


1
或者干脆ln -s /path/to/pip3 /path/to/pip
扬FILIPPIDIS

0

在Ubuntu 17.10上,ff解决了以下问题:

sudo apt-get install python3-pydot graphviz
sudo pip3 install pydot_ng
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.