Làm thế nào để cài đặt pydot và graphviz?


24

Tôi đang chạy một mã cần pydot và graphviz. Tôi đang sử dụng python 3.5 và ubfox 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.

Tôi googled một chút sau đó thấy rằng tôi có thể cài đặt pydot với mã pip install pydot. Nhưng tôi biết nhận được lỗi này. Tôi không biết gì về Ubuntu và tôi không hiểu phải làm gì. Vậy làm cách nào để cài đặt 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.4sudo apt-get install graphviz.
Ioannis Filippidis

Câu trả lời:


38

python-pydot và graphviz nằm trong kho Ubuntu mặc định trong tất cả các phiên bản Ubuntu hiện được hỗ trợ. Trong tất cả các phiên bản hiện đang được hỗ trợ của Ubuntu, hãy mở thiết bị đầu cuối và gõ:

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

Lưu đồ này được tạo ra với graphviz trong Ubuntu. Vì graphviz sử dụng ngôn ngữ lập trình chấm tích hợp có trong gói graphviz, mã nguồn của sơ đồ liên kết có thể chỉnh sửa trong bất kỳ trình soạn thảo văn bản nào ngay cả khi python-pydot không được cài đặt.

Tôi không biết tại sao bạn muốn cài đặt pydot với pip khi bạn có thể lấy nó từ kho Ubuntu, nhưng để trả lời câu hỏi của bạn, tôi đã thử cài đặt pydot trong môi trường ảo Python pip3 install pydotvà nó đã hoạt động, vì vậy có thể là bạn cần cập nhật pip lên phiên bản mới nhất với sudo -H pip3 install --upgrade pip. Tôi đã sử dụng pip3thay pipvì bởi vì bạn đã viết trong câu hỏi của bạn rằng bạn đang sử dụng Python 3.5.


wow cảm ơn bạn :) Tôi đã theo dõi ý kiến ​​của bạn khi bạn cập nhật nó. Cuối cùng nó đã làm việc. Đoán tôi cần google lên nhiều hơn trên Ubuntu. pip, pip3, apt, apt-get ... tất cả đều rất khó hiểu.
Kong

Trong Ubuntu, nhiều gói từ PyPI được bao gồm trong kho Ubuntu mặc định và tên gói của chúng thường được đặt trước python-và tương tự cho các gói pip3, tên gói của chúng trong repos Ubuntu thường được đặt trướcpython3-
karel

Cài đặt các gói trực tiếp từ PyPI với pipcách tiếp cận được đề xuất: phiên bản mới nhất (kho lưu trữ Ubuntu có thể bị lỗi thời), được quản lý bằng tệp yêu cầu khi thích hợp và được cài đặt vào virtualenv; không đến các gói trang web của hệ thống.
Ioannis Filippidis

6

Từ câu trả lời này về "Cài đặt gói pydot và graphviz trong môi trường Anaconda"

Tôi đã có cùng một vấn đề và giải quyết nó bằng cách (thứ tự là quan trọng ):

  1. Cài đặt graphviz, chỉ cần thông quasudo apt-get install graphviz
  2. Cài đặt graphvizcho Python qua condasudo ~/anaconda2/bin/conda install graphviz
  3. Cuối cùng, bằng cách cài đặt pydotbằng condasudo ~/anaconda2/bin/conda install pydot

Câu trả lời này đã quá hạn nhưng bài đăng này đã giúp tôi (cùng với bài này đề cập đến thứ tự cài đặt), vì vậy hy vọng câu trả lời này sẽ giúp được người khác. Tôi đang sử dụng Ubuntu 14.04 và Python 2.7.

PS rõ ràng, có thể có một số vấn đề với bước 1 của thuật toán trên, bài đăng này đề cập đến cách khắc phục chúng.


2
Xin đừng đạo văn. Nó không trái với quy tắc của trang web, nhưng chắc chắn nó không hay. Thay vào đó, bạn có thể sao chép-dán câu trả lời và thuộc tính nguồn của chúng. Tôi sẽ chỉnh sửa câu trả lời của bạn để chứng minh.
wjandrea

3

Bởi vì bạn sử dụng python 3, lệnh đúng sẽ là pip3 install pydot graphviz. Bạn có thể cài đặt pip3 bằng cách sử dụng sudo apt install python3-pip.


1
hoặc đơn giảnln -s /path/to/pip3 /path/to/pip
Ioannis Filippidis

0

Trên Ubuntu 17.10, ff đã khắc phục sự cố:

sudo apt-get install python3-pydot graphviz
sudo pip3 install pydot_ng
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.