Como instalar pydot e graphviz?

24

Estou executando um código que precisa de pydot e graphviz. Estou usando python 3.5 e ubuntu 16.04 LTS 64 bits.

  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.

Pesquisei um pouco no google e descobri que posso instalar o pydot com o código pip install pydot. Mas eu sei esse erro. Eu sou noob no ubuntu e não entendo o que fazer. então, como instalo o 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'
Kong
fonte
1
pip install pydot>=1.2.4e sudo apt-get install graphviz.
Ioannis Filippidis

Respostas:

38

python-pydot e graphviz estão nos repositórios padrão do Ubuntu em todas as versões atualmente suportadas do Ubuntu. Em todas as versões atualmente suportadas do Ubuntu, abra o terminal e digite:

sudo apt install python-pydot python-pydot-ng graphviz # python-pydot-ng isn't in the 14.04 repos

Este fluxograma foi criado com o graphviz no Ubuntu. Como o graphviz usa a linguagem de programação de pontos incorporada que está incluída no pacote graphviz, o código-fonte do fluxograma vinculado é editável em qualquer editor de texto, mesmo que o python-pydot não esteja instalado.

Não sei por que você gostaria de instalar o pydot com pip quando você pode obtê-lo nos repositórios do Ubuntu, mas, para responder sua pergunta, tentei instalar o pydot de qualquer maneira em um ambiente virtual Python pip3 install pydote funcionou, portanto é possível que você precisa atualizar o pip para a versão mais recente com sudo -H pip3 install --upgrade pip. Eu usei em pip3vez de, pipporque você escreveu na sua pergunta que está usando o Python 3.5.

karel
fonte
uau obrigado :) Eu tenho seguido seus comentários enquanto você o atualizava. Finalmente funcionou. Acho que preciso pesquisar mais no ubuntu. pip, pip3, apt, apt-get ... é tudo super confuso.
209 Kong
No Ubuntu muitos pacotes de PyPI estão incluídos nos repositórios do Ubuntu padrão e seus nomes de pacote são geralmente precedidos por python-e similarmente para PIP3 empacota seus nomes de pacotes nos repositórios do Ubuntu são geralmente precedidas porpython3-
Karel
A instalação de pacotes diretamente do PyPI com pipé a abordagem recomendada: a versão mais recente (os repositórios do Ubuntu podem estar desatualizados), gerenciados com um arquivo de requisitos quando apropriado e instalados em um virtualenv; não para os pacotes de sites do sistema.
Ioannis Filippidis 25/10
6

A partir desta resposta em "Instalando pacotes pydot e graphviz no ambiente Anaconda"

Eu tive o mesmo problema e o resolvi (a ordem é importante ):

  1. Instalando graphviz, simplesmente viasudo apt-get install graphviz
  2. Instalando graphvizpara Python via condasudo ~/anaconda2/bin/conda install graphviz
  3. Por fim, instalando pydotusando condasudo ~/anaconda2/bin/conda install pydot

Esta resposta está atrasada, mas este post me ajudou (junto com este que menciona a ordem de instalação), por isso espero que esta resposta ajude outra pessoa. Estou usando o Ubuntu 14.04 e Python 2.7.

PS aparentemente, pode haver alguns problemas com a etapa 1 do algoritmo acima, este post menciona como corrigi-los.

Emmie Jackson
fonte
2
Por favor, não plagie. Não é contra as regras do site, mas certamente não é legal. Em vez disso, você pode copiar e colar respostas e atribuir sua origem. Vou editar sua resposta para demonstrar.
Wjandrea 20/05
3

Como você usa python 3, o comando certo seria pip3 install pydot graphviz. Você pode instalar o pip3 usando sudo apt install python3-pip.

Casper Gerritsen
fonte
1
ou simplesmenteln -s /path/to/pip3 /path/to/pip
Ioannis Filippidis 25/10
0

No Ubuntu 17.10, a ff corrigiu o problema:

sudo apt-get install python3-pydot graphviz
sudo pip3 install pydot_ng
rowel
fonte