Jak zainstalować Pydot i Graphviz?

24

Korzystam z kodu, który wymaga pydot i graphviz. Używam Pythona 3.5 i 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.

Trochę googlowałem, a potem stwierdziłem, że mogę zainstalować pydot z kodem pip install pydot. Ale wiem, dostaję ten błąd. Jestem noob in ubuntu i nie rozumiem, co robić. więc jak zainstalować 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
źródło
1
pip install pydot>=1.2.4a sudo apt-get install graphviz.
Ioannis Filippidis

Odpowiedzi:

38

Python-pydot i graphviz znajdują się w domyślnych repozytoriach Ubuntu we wszystkich obecnie obsługiwanych wersjach Ubuntu. We wszystkich obecnie obsługiwanych wersjach Ubuntu otwórz terminal i wpisz:

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

Ten schemat blokowy został stworzony przy pomocy graphviz w Ubuntu. Ponieważ graphviz korzysta z wbudowanego języka programowania kropek, który jest zawarty w pakiecie graphviz, kod źródłowy połączonego schematu blokowego można edytować w dowolnym edytorze tekstowym, nawet jeśli Python-pydot nie jest zainstalowany.

Nie wiem, dlaczego chcesz zainstalować pydot z pipem, skoro możesz go pobrać z repozytoriów Ubuntu, ale aby odpowiedzieć na twoje pytanie, i tak próbowałem zainstalować pydot w środowisku wirtualnym Pythona pip3 install pydoti działało, więc możliwe, że trzeba zaktualizować pip do najnowszej wersji za pomocą sudo -H pip3 install --upgrade pip. Użyłem pip3zamiast tego, pipponieważ napisałeś w swoim pytaniu, że używasz Python 3.5.

Karel
źródło
wow dziękuję :) Śledziłem twoje komentarze, jak je zaktualizowałeś. W końcu zadziałało. Chyba muszę google więcej na Ubuntu. pip, pip3, apt, apt-get ... to wszystko jest bardzo mylące.
Kong
W Ubuntu wiele pakietów z PyPI jest zawartych w domyślnych repozytoriach Ubuntu, a ich nazwy są zwykle poprzedzone python-i podobnie w przypadku pakietów pip3 ich nazwy w repozytoriach Ubuntu są zwykle poprzedzone znakiempython3-
karel
pipZalecane jest instalowanie pakietów bezpośrednio z PyPI za pomocą: najnowszej wersji (repozytoria Ubuntu mogą być nieaktualne), zarządzanej za pomocą pliku wymagań, gdy jest to właściwe, i instalowanej na virtualenv; nie do pakietów witryn systemu.
Ioannis Filippidis
6

Z tej odpowiedzi na temat „Instalowanie pakietów pydot i graphviz w środowisku Anaconda”

Miałem ten sam problem i rozwiązałem go ( ważna jest kolejność ):

  1. Instalacja graphvizpo prostu za pośrednictwemsudo apt-get install graphviz
  2. Instalowanie graphvizdla Pythona za pomocą condasudo ~/anaconda2/bin/conda install graphviz
  3. Wreszcie, instalując pydotprzy użyciu condasudo ~/anaconda2/bin/conda install pydot

Ta odpowiedź jest spóźniona, ale ten post pomógł mi (wraz z tym, który wspomina o kolejności instalacji), więc mam nadzieję, że ta odpowiedź pomoże komuś innemu. Używam Ubuntu 14.04 i Python 2.7.

PS najwyraźniej mogą wystąpić pewne problemy z krokiem 1 powyższego algorytmu, tym poście wspomniano, jak je naprawić.

Emmie Jackson
źródło
2
Proszę nie plagiatuj. To nie jest niezgodne z zasadami witryny, ale z pewnością nie jest fajne. Zamiast tego możesz skopiować i wkleić odpowiedzi oraz przypisać ich źródło. Przeredaguję twoją odpowiedź, aby zademonstrować.
wjandrea
3

Ponieważ używasz Pythona 3, właściwym poleceniem byłoby pip3 install pydot graphviz. Możesz zainstalować pip3 za pomocą sudo apt install python3-pip.

Casper Gerritsen
źródło
1
lub po prostuln -s /path/to/pip3 /path/to/pip
Ioannis Filippidis
0

Na Ubuntu 17.10, ff naprawił problem:

sudo apt-get install python3-pydot graphviz
sudo pip3 install pydot_ng
zakładać zawłokę
źródło