Як встановити pydot та graphviz?


24

Я запускаю код, який потребує pydot та graphviz. Я використовую 64-бітний python 3.5 та ubuntu 16.04 LTS.

  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.

Я трохи погуглився, потім виявив, що можу встановити pydot з кодом pip install pydot. Але я знаю, отримаю цю помилку. Я noob в ubuntu і не розумію, що робити. так як мені встановити 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.4і sudo apt-get install graphviz.
Іоанніс Філіппідіс

Відповіді:


38

python-pydot і graphviz знаходяться у сховищах Ubuntu за замовчуванням у всіх підтримуваних на даний момент версіях Ubuntu. У всіх підтримуваних на даний момент версіях Ubuntu відкрийте термінал і введіть:

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

Ця блок-схема була створена за допомогою graphviz в Ubuntu. Оскільки graphviz використовує вбудовану точкову мову програмування, яка входить до пакету graphviz, вихідний код пов'язаної діаграми потоку можна редагувати в будь-якому текстовому редакторі, навіть якщо python-pydot не встановлений.

Я не знаю, чому ви хотіли б встановити pydot з pip, коли зможете отримати його з сховищ Ubuntu, але щоб відповісти на ваше запитання, я намагався все-таки встановити pydot у віртуальному середовищі Python, pip3 install pydotі це спрацювало, тож можливо, ви потрібно оновити pip до останньої версії с sudo -H pip3 install --upgrade pip. Я використовував pip3замість того, pipщо ви в своєму запитанні написали, що використовуєте Python 3.5.


вау, дякую :) Я стежив за вашими коментарями, коли ви його оновлювали. Це нарешті спрацювало. Гадаю, мені потрібно більше google на ubuntu. pip, pip3, apt, apt-get ... все це супер заплутано.
Конг

У Ubuntu багато пакунків з PyPI включено до сховищ Ubuntu за замовчуванням, і їхні імена пакунків зазвичай є попередніми python-для подібних пакетів і так само, як і для пакетів pip3, їх імена в репостах Ubuntu зазвичай є попереднімиpython3-
karel

pipРекомендований підхід встановлення пакетів безпосередньо з PyPI з : остання версія (сховища Ubuntu можуть бути застарілими), керована файлом вимог, коли це доречно, та встановлена ​​в a virtualenv; не на сайти-пакети системи.
Іоанніс Філіппідіс

6

З цієї відповіді на тему "Встановлення пакетів pydot та graphviz в середовищі Anaconda"

У мене було те саме питання, і я вирішив його ( важливий порядок ):

  1. Установка graphviz, просто черезsudo apt-get install graphviz
  2. Встановлення graphvizдля Python через condasudo ~/anaconda2/bin/conda install graphviz
  3. Нарешті, встановивши pydotза допомогою condasudo ~/anaconda2/bin/conda install pydot

Ця відповідь прострочена, але ця публікація допомогла мені (разом із цим, який згадує про порядок встановлення), тому, сподіваюся, ця відповідь допоможе комусь іншому. Я використовую Ubuntu 14.04 і Python 2.7.

PS Мабуть, можуть виникнути деякі проблеми з кроком 1 вищевказаного алгоритму, в цьому пості згадується, як їх виправити.


2
Будь ласка, не плагіат. Це не проти правил сайту, але це, звичайно, не круто. Натомість ви можете скопіювати та вставити відповіді та приписувати їх джерело. Я відредагую вашу відповідь, щоб продемонструвати.
wjandrea


0

У Ubuntu 17.10 ff виправила проблему:

sudo apt-get install python3-pydot graphviz
sudo pip3 install pydot_ng
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.