Come installare pydot e graphviz?


24

Sto eseguendo un codice che richiede pydot e graphviz. Sto usando Python 3.5 e Ubuntu 16.04 LTS a 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.

Ho cercato su Google un po ', poi ho scoperto che posso installare pydot con il codice pip install pydot. Ma so ottenere questo errore. Sono ubriaco in Ubuntu e non capisco cosa fare. quindi come installo 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.4e sudo apt-get install graphviz.
Ioannis Filippidis,

Risposte:


38

python-pydot e graphviz si trovano nei repository Ubuntu predefiniti in tutte le versioni attualmente supportate di Ubuntu. In tutte le versioni attualmente supportate di Ubuntu, apri il terminale e digita:

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

Questo diagramma di flusso è stato creato con graphviz in Ubuntu. Poiché graphviz utilizza il linguaggio di programmazione dot incorporato che è incluso nel pacchetto graphviz, il codice sorgente del diagramma di flusso collegato è modificabile in qualsiasi editor di testo anche se python-pydot non è installato.

Non so perché vorresti installare pydot con pip quando puoi ottenerlo dai repository Ubuntu, ma per rispondere alla tua domanda ho provato comunque a installare pydot in un ambiente virtuale Python pip3 install pydote ha funzionato, quindi è possibile che tu è necessario aggiornare pip all'ultima versione con sudo -H pip3 install --upgrade pip. Ho usato pip3invece pipperché hai scritto nella tua domanda che stai usando Python 3.5.


wow grazie :) Ho seguito i tuoi commenti mentre lo aggiornavi. Alla fine ha funzionato. Immagino di dover cercare di più su Ubuntu. pip, pip3, apt, apt-get ... è tutto super confuso.
Kong,

In Ubuntu molti pacchetti di PyPI sono inclusi nei repository Ubuntu predefiniti e i loro nomi dei pacchetti sono generalmente preceduti python-e allo stesso modo per i pacchetti pip3 i nomi dei loro pacchetti nei repository Ubuntu sono di solito preceduti dapython3-
karel

L'installazione consigliata di pacchetti direttamente da PyPI pipè l'approccio consigliato: la versione più recente (i repository Ubuntu possono essere obsoleti), gestita con un file dei requisiti quando appropriato e installata su un virtualenv; non ai pacchetti del sito del sistema.
Ioannis Filippidis,

6

Da questa risposta su "Installazione dei pacchetti pydot e graphviz in ambiente Anaconda"

Ho avuto lo stesso problema e risolto (l'ordine è importante ):

  1. Installazione graphviz, semplicemente tramitesudo apt-get install graphviz
  2. Installazione graphvizper Python tramite condasudo ~/anaconda2/bin/conda install graphviz
  3. Infine, installando pydotusando condasudo ~/anaconda2/bin/conda install pydot

Questa risposta è in ritardo ma questo post mi ha aiutato (insieme a questo che menziona l'ordine di installazione), quindi spero che questa risposta possa aiutare qualcun altro. Sto usando Ubuntu 14.04 e Python 2.7.

PS apparentemente, potrebbero esserci dei problemi con il passaggio 1 dell'algoritmo sopra, questo post menziona come risolverli.


2
Per favore, non plagiare. Non è contro le regole del sito, ma non è certamente interessante. Invece, puoi copiare e incollare le risposte e attribuire la loro fonte. Modificherò la tua risposta per dimostrare.
wjandrea,

3

Dato che usi python 3, il comando giusto sarebbe pip3 install pydot graphviz. Puoi installare pip3 usando sudo apt install python3-pip.


1
o semplicementeln -s /path/to/pip3 /path/to/pip
Ioannis Filippidis,

0

Su Ubuntu 17.10, l'ff ha risolto il problema:

sudo apt-get install python3-pydot graphviz
sudo pip3 install pydot_ng
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.