DEV Community

HHMathewChan
HHMathewChan

Posted on • Edited on • Originally published at rebirthwithcode.tech

5 1

Instruction to install pygraphviz package in Pycharm in MacOs

Since I spend a lot of time to solve this problem, so make a rocord for future reuse.

Environment

  • Mao os 12.4
  • Macbook air(M1,2020)
  • PyCharm 2022.1.4 (Community Edition)
    • Runtime version: 11.0.15+10-b2043.56 aarch64
  • graphviz: stable 5.0.0
  • pygraphviz: 1.9

Problem

  • The problem is encounter after install graphviz
    • as to install pygraphviz you need
      • Python (version 3.8, 3.9, or 3.10)
      • Graphviz (version 2.42 or later)
      • C/C++ Compiler
  • if you use normal command pip install graphviz to install graphviz first
    • then use pip install pygraphviz to install pygraphviz
    • you would encounter a fatal error
fatal error: 'graphviz/cgraph.h' file not found
Enter fullscreen mode Exit fullscreen mode
  • the file cgraph.h cannot be found
  • even you may find the file in graphviz package file

Why this problem happen

  • the installation wizard of pygraphviz cannot find cgraph.h in his default searching path
  • So, you need to provide searching path when install pygraphviz

Solution that work for me

Step 1. use Homebrew to graphviz package first

  • Install Homebrew from its official website
  • type following command in Pycharm terminal
brew install graphviz
Enter fullscreen mode Exit fullscreen mode
  • it takes a long time to install
    • then you should be able to find graphviz file in the following path :(/opt/homebrew/Cellar/graphviz)

Some explanation

  • Homebrew is a kind of package manager for MacOS (or Linux)
  • and all package installed via Homebrew is stored its Homebrew file which is under an opt file
  • the opt file is a directory for installing unbundled packages
  • i.e. Homebrew in this case help you to install graphviz and provide an searching path for further installation for pygraphviz

Step 2. Provide searching path when install pygraphviz

  • type following command in Pycharm terminal
pip3 install --global-option=build_ext --global-option="-I$(brew --prefix graphviz)/include" --global-option="-L$(brew --prefix graphviz)/lib" pygraphviz
Enter fullscreen mode Exit fullscreen mode
  • pip3 is just to make sure package is install for python 3
  • the -I and -L flags tell the linker where to look for the required Graphviz libraries at build time and run time
  • --prefix will let you specific where the directory to go for

Credit

Image of Datadog

The Future of AI, LLMs, and Observability on Google Cloud

Datadog sat down with Google’s Director of AI to discuss the current and future states of AI, ML, and LLMs on Google Cloud. Discover 7 key insights for technical leaders, covering everything from upskilling teams to observability best practices

Learn More

Top comments (1)

Collapse
 
joelbonetr profile image
JoelBonetR 🥇

Hi @mathewchan , please remove the #help tag if you don't need help to solve it.

It's better to add #pygraphviz #Pycharm #MacOs and #python as tags so other users can find this quickly.

Thank you! 😁

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up