Comment installer pydot et graphviz?

24

Im exécutant un code qui a besoin de pydot et graphviz. J'utilise python 3.5 et 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.

J'ai googlé un peu puis j'ai découvert que je pouvais installer pydot avec le code pip install pydot. Mais je sais obtenir cette erreur. Je suis noob à Ubuntu et je ne comprends pas quoi faire. alors comment installer 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
la source
1
pip install pydot>=1.2.4et sudo apt-get install graphviz.
Ioannis Filippidis du

Réponses:

38

python-pydot et graphviz sont dans les référentiels Ubuntu par défaut dans toutes les versions actuellement prises en charge d'Ubuntu. Dans toutes les versions actuellement prises en charge d'Ubuntu, ouvrez le terminal et tapez:

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

Cet organigramme a été créé avec graphviz dans Ubuntu. Étant donné que graphviz utilise le langage de programmation par points intégré qui est inclus dans le package graphviz, le code source du diagramme lié est modifiable dans n'importe quel éditeur de texte même si python-pydot n'est pas installé.

Je ne sais pas pourquoi vous voudriez installer pydot avec pip quand vous pouvez l'obtenir à partir des référentiels Ubuntu, mais pour répondre à votre question, j'ai quand même essayé d'installer pydot dans un environnement virtuel Python pip3 install pydotet cela a fonctionné, il est donc possible que vous besoin de mettre à jour pip vers la dernière version avec sudo -H pip3 install --upgrade pip. J'ai utilisé pip3au lieu de pipparce que vous avez écrit dans votre question que vous utilisez Python 3.5.

Karel
la source
wow merci :) J'ai suivi vos commentaires lorsque vous l'avez mis à jour. Cela a finalement fonctionné. Je suppose que j'ai besoin de google plus sur ubuntu. pip, pip3, apt, apt-get ... tout cela est très déroutant.
Kong
Dans Ubuntu, de nombreux packages de PyPI sont inclus dans les référentiels Ubuntu par défaut et leurs noms de package sont généralement préfacés avec python-et de même pour les packages pip3, leurs noms de package dans les référentiels Ubuntu sont généralement préfacés avecpython3-
karel
L'installation de packages directement à partir de PyPI avec pipest l'approche recommandée: la dernière version (les référentiels Ubuntu peuvent être obsolètes), gérée avec un fichier d'exigences le cas échéant, et installée dans un virtualenv; pas aux packages de site du système.
Ioannis Filippidis du
6

De cette réponse sur "Installer les packages pydot et graphviz dans l'environnement Anaconda"

J'ai eu le même problème et l'ai résolu par (l'ordre est important ):

  1. Installation graphviz, simplement viasudo apt-get install graphviz
  2. Installation graphvizpour Python via condasudo ~/anaconda2/bin/conda install graphviz
  3. Enfin, en installant en pydotutilisant condasudo ~/anaconda2/bin/conda install pydot

Cette réponse est attendue depuis longtemps, mais ce message m'a aidé (avec celui-ci qui mentionne l'ordre d'installation), alors j'espère que cette réponse aidera quelqu'un d'autre. J'utilise Ubuntu 14.04 et Python 2.7.

PS apparemment, il pourrait y avoir des problèmes avec l'étape 1 de l'algorithme ci-dessus, ce post mentionne comment les corriger.

Emmie Jackson
la source
2
Veuillez ne pas plagier. Ce n'est pas contraire aux règles du site, mais ce n'est certainement pas cool. Au lieu de cela, vous pouvez copier-coller des réponses et attribuer leur source. Je vais modifier votre réponse pour le démontrer.
wjandrea
3

Parce que vous utilisez python 3, la bonne commande serait pip3 install pydot graphviz. Vous pouvez installer pip3 à l'aide de sudo apt install python3-pip.

Casper Gerritsen
la source
1
ou simplementln -s /path/to/pip3 /path/to/pip
Ioannis Filippidis
0

Sur Ubuntu 17.10, le ff a résolu le problème:

sudo apt-get install python3-pydot graphviz
sudo pip3 install pydot_ng
molette
la source