Wie installiere ich pydot und graphviz?

24

Ich lasse einen Code laufen, der pydot und graphviz benötigt. Ich benutze Python 3.5 und Ubuntu 16.04 LTS 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.

Ich habe ein wenig gegoogelt und dann festgestellt, dass ich pydot mit dem Code installieren kann pip install pydot. Aber ich weiß, diesen Fehler zu bekommen. Ich bin kein Ubuntu-Neuling und verstehe nicht, was ich tun soll. Wie installiere ich 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
quelle
1
pip install pydot>=1.2.4und sudo apt-get install graphviz.
Ioannis Filippidis

Antworten:

38

python-pydot und graphviz sind in allen derzeit unterstützten Versionen von Ubuntu in den Ubuntu-Standardrepositorys enthalten. Öffnen Sie in allen derzeit unterstützten Versionen von Ubuntu das Terminal und geben Sie Folgendes ein:

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

Dieses Flussdiagramm wurde mit graphviz in Ubuntu erstellt. Da graphviz die im graphviz-Paket enthaltene integrierte Punktprogrammiersprache verwendet, kann der Quellcode des verknüpften Flussdiagramms in jedem Texteditor bearbeitet werden, auch wenn python-pydot nicht installiert ist.

Ich weiß nicht, warum Sie pydot mit pip installieren möchten, wenn Sie es aus den Ubuntu-Repositorys herunterladen können, aber um Ihre Frage zu beantworten, habe ich versucht, pydot trotzdem in einer virtuellen Python-Umgebung zu installieren, pip3 install pydotund es hat funktioniert, sodass es möglich ist, dass Sie muss pip mit auf die neueste version updaten sudo -H pip3 install --upgrade pip. Ich habe pip3stattdessen pipgeschrieben, dass Sie Python 3.5 verwenden.

karel
quelle
wow danke :) Ich habe Ihre Kommentare verfolgt, als Sie es aktualisiert haben. Es hat endlich geklappt. Ich schätze, ich muss mehr über Ubuntu googeln. pip, pip3, apt, apt-get ... es ist alles super verwirrend.
Kong
In Ubuntu sind viele Pakete von PyPI in den Standard-Ubuntu-Repositories enthalten und deren Paketnamen sind normalerweise mit einem python-Präfix versehen. In Pip3-Paketen sind die Paketnamen in den Ubuntu-Repositories normalerweise mit einem Präfix versehen:python3-
karel
Das Installieren von Paketen direkt von PyPI mit pipist der empfohlene Ansatz: Die neueste Version (Ubuntu-Repositorys können veraltet sein) wird mit einer Anforderungsdatei verwaltet und auf einem virtualenv; nicht zu den Site-Paketen des Systems.
Ioannis Filippidis
6

Von dieser Antwort auf "Installieren von pydot- und graphviz-Paketen in einer Anaconda-Umgebung"

Ich hatte das gleiche Problem und löste es durch (Reihenfolge ist wichtig ):

  1. Installation graphvizeinfach übersudo apt-get install graphviz
  2. Installation graphvizfür Python über condasudo ~/anaconda2/bin/conda install graphviz
  3. Schließlich durch die Installation pydotmit condasudo ~/anaconda2/bin/conda install pydot

Diese Antwort ist überfällig, aber dieser Beitrag hat mir geholfen (zusammen mit diesem , in dem die Installationsreihenfolge erwähnt wird). Hoffentlich hilft diese Antwort jemand anderem. Ich benutze Ubuntu 14.04 und Python 2.7.

PS: Anscheinend könnte es einige Probleme mit Schritt 1 des obigen Algorithmus geben. In diesem Beitrag wird erwähnt, wie diese behoben werden können.

Emmie Jackson
quelle
2
Bitte nicht plagiieren. Es verstößt nicht gegen die Site-Regeln, ist aber auf keinen Fall cool. Stattdessen können Sie Antworten kopieren und einfügen und deren Quelle zuweisen. Ich werde Ihre Antwort bearbeiten, um zu demonstrieren.
wjandrea
3

Da Sie Python 3 verwenden, wäre der richtige Befehl pip3 install pydot graphviz. Sie können pip3 mit installieren sudo apt install python3-pip.

Casper Gerritsen
quelle
1
oder einfachln -s /path/to/pip3 /path/to/pip
Ioannis Filippidis
0

Unter Ubuntu 17.10 hat das ff das Problem behoben:

sudo apt-get install python3-pydot graphviz
sudo pip3 install pydot_ng
Rowel
quelle