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'
pip install pydot>=1.2.4
asudo apt-get install graphviz
.Odpowiedzi:
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:
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 pydot
i działało, więc możliwe, że trzeba zaktualizować pip do najnowszej wersji za pomocąsudo -H pip3 install --upgrade pip
. Użyłempip3
zamiast tego,pip
ponieważ napisałeś w swoim pytaniu, że używasz Python 3.5.źródło
python-
i podobnie w przypadku pakietów pip3 ich nazwy w repozytoriach Ubuntu są zwykle poprzedzone znakiempython3-
pip
Zalecane 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 navirtualenv
; nie do pakietów witryn systemu.Z tej odpowiedzi na temat „Instalowanie pakietów pydot i graphviz w środowisku Anaconda”
źródło
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
.źródło
ln -s /path/to/pip3 /path/to/pip
Na Ubuntu 17.10, ff naprawił problem:
źródło