Install¶
PyGraphviz requires:
Python (version 3.7, 3.8, or 3.9)
Graphviz (version 2.42 or later)
C/C++ Compiler
Note
These instructions assume you have Python and a C/C++ Compiler on your computer.
Warning
We recommend avoiding Anaconda and conda-forge to install Graphviz and PyGraphviz.
Recommended¶
We recommend installing Python packages using pip and virtual environments.
Linux¶
We recommend installing Graphviz using your Linux system’s package manager. Below are examples for some popular distributions.
Ubuntu and Debian¶
$ sudo apt-get install graphviz graphviz-dev
$ pip install pygraphviz
Fedora and Red Hat¶
You may need to replace dnf
with yum
in the example below.
$ sudo dnf install graphviz graphviz-devel
$ pip install pygraphviz
Advanced¶
- The two main difficulties are
installing Graphviz and
informing pip where Graphviz is installed.
Providing path to Graphviz¶
If you’ve installed Graphviz and pip
is unable to find Graphviz, then you need to
provide pip
with the path(s) where it can find Graphviz.
To do this, you first need to figure out where the binary files, includes files, and
library files for Graphviz are located on your file system.
Once you know where you’ve installed Graphviz, you will need to do something like the following. There is an additional example using Chocolatey on Windows further down the page.
MacPorts¶
Note
port install graphviz-devel
installs an old developer release of Graphviz.
Hopefully, the MacPorts packagers will update Graphviz to a recent release.
Once that happens, you may want to use port install graphviz
instead of
port install graphviz-devel
below.
There is an open ticket to upgrade MacPorts to version 2.46.0 here:
https://trac.macports.org/ticket/62165
$ port install graphviz-devel
$ pip install --global-option=build_ext \
--global-option="-I/opt/local/include/" \
--global-option="-L/opt/local/lib/" \
pygraphviz
Windows¶
Historically, installing Graphviz and PyGraphviz on Windows has been challenging. Fortunately, the Graphviz developers are working to fix this and their recent releases have much improved the situation.
For this reason, PyGraphviz 1.7 only supports Graphviz 2.46.0 or higher on Windows. We recommend either manually installing the official binary release of Graphviz or using Chocolatey, which has been updated to Graphviz 2.46.0.
You may also need to install Visual C/C++, e.g. from here: https://visualstudio.microsoft.com/visual-cpp-build-tools/
Assuming you have Python and Visual C/C++ installed, we believe the following should work on Windows 10 (64 bit) using PowerShell.
Manual download¶
Download and install 2.46.0 for Windows 10 (64-bit): stable_windows_10_cmake_Release_x64_graphviz-install-2.46.0-win64.exe.
Install PyGraphviz via
PS C:\> python -m pip install --global-option=build_ext `
--global-option="-IC:\Program Files\Graphviz\include" `
--global-option="-LC:\Program Files\Graphviz\lib" `
pygraphviz
Chocolatey¶
PS C:\> choco install graphviz
PS C:\> python -m pip install --global-option=build_ext `
--global-option="-IC:\Program Files\Graphviz\include" `
--global-option="-LC:\Program Files\Graphviz\lib" `
pygraphviz
FAQ¶
- Q
I followed the installation instructions but when I do:
>>> import pygraphvizI get an error like:
ImportError: libagraph.so.1: cannot open shared object file: No such file or directory
What is wrong?
- A
Some Unix systems don’t include the Graphviz library in the default search path for the run-time linker. The path is often something like
/usr/lib/graphviz
or/sw/lib/graphviz
etc. and it needs to be added to your search path. On *nix systems, the preferred way to do this is by setting the appropriate flags when building/installingpygraphviz
. For example, if the Graphviz libraries are installed in/opt/lib/mygviz/
on your system:pip install --global-option=build_ext \ --global-option="-L/opt/lib/mygviz/" \ --global-option="-R/opt/lib/mygviz/" \ pygraphvizIn this example, the
-L
and-R
flags tell the linker where to look for the required Graphviz libraries at build time and run time, respectively.- Q
How do I compile pygraphviz under Windows?
- A
See Windows for the latest on how to install Graphviz and pygraphviz on Windows.
- Q
Why don’t you distribute a pygraphviz Windows installer?
- A
We would very much like to make binary wheels available for
pygraphviz
, but there are several complications.pygraphviz
is a wrapper around Graphviz, which means that Graphviz must be installed, and Graphviz header files, libraries and command line executables must all be accessible for the wrapper. The recommended use of the Graphviz CLI poses challenges for wheel packaging.See also
This GitHub issue for further discussion on wheels and packaging.