Установка pygraphviz на macOS

Изучая алгоритмы на графах, столкнулся с необходимостью их визуализации. В Python есть готовый для этого пакет – pygraphviz. Но, как это периодически бывает на macOS, установка не всегда проходит гладко:

$ pip install pygraphviz

...
      pygraphviz/graphviz_wrap.c:2711:10: fatal error: 'graphviz/cgraph.h' file not found
      #include "graphviz/cgraph.h"
               ^~~~~~~~~~~~~~~~~~~
      1 error generated.
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> pygraphviz
Ошибка при установке пакета pygraphviz

Решить проблему можно следующим образом.

Установить приложение graphviz, которое включает в себя необходимые C/C++ библиотеки:

$ brew install graphviz
Установка приложения через Homebrew

Выяснить расположение требуемых библиотек:

$ brew info graphviz

graphviz: stable 3.0.0 (bottled), HEAD
Graph visualization software from AT&T and Bell Labs
https://www.graphviz.org/
/opt/homebrew/Cellar/graphviz/3.0.0 (292 files, 7.4MB) *
  Poured from bottle on 2022-07-10 at 01:38:34
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/graphviz.rb

Выполнить установку с явным указанием каталога graphviz:

$ export GRAPHVIZ_DIR="/opt/homebrew/Cellar/graphviz/3.0.0"

$ pip install pygraphviz --global-option=build_ext --global-option="-I$GRAPHVIZ_DIR/include" --global-option="-L$GRAPHVIZ_DIR/lib"

В итоге, даже если pygraphviz указан в вашем requirements.txt, придется выполнить pip install вручную, чтобы менеджер пакетов смог понять где искать нативные зависимости.