pip install pygraphviz: No package 'libcgraph' found

Question:

I succeed in installing graphviz and cgraph with

$ sudo pip install graphviz
....
Successfully installed graphviz-0.5.1

$ sudo pip install cgraph
...
Successfully installed cgraph-0.1

I encounter the issue No package 'libcgraph' found while running sudo pip install pygraphviz. Below is the full stacktrace.

$ sudo pip install pygraphviz
The directory '/Users/sparkandshine/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/sparkandshine/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting pygraphviz
  Downloading pygraphviz-1.3.1.zip (123kB)
    100% |████████████████████████████████| 133kB 1.5MB/s 
Installing collected packages: pygraphviz
  Running setup.py install for pygraphviz ... error
    Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/tmp/pip-build-qfFpFG/pygraphviz/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-JmwjA6-record/install-record.txt --single-version-externally-managed --compile:
    running install
    Trying pkg-config
    Package libcgraph was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libcgraph.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'libcgraph' found
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/tmp/pip-build-qfFpFG/pygraphviz/setup.py", line 87, in <module>
        tests_require=['nose>=0.10.1', 'doctest-ignore-unicode>=0.1.0',],
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 151, in setup
        dist.run_commands()
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
        self.run_command(cmd)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
        cmd_obj.run()
      File "setup_commands.py", line 44, in modified_run
        self.include_path, self.library_path = get_graphviz_dirs()
      File "setup_extra.py", line 121, in get_graphviz_dirs
        include_dirs, library_dirs = _pkg_config()
      File "setup_extra.py", line 44, in _pkg_config
        output = S.check_output(['pkg-config', '--libs-only-L', 'libcgraph'])
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 573, in check_output
        raise CalledProcessError(retcode, cmd, output=output)
    subprocess.CalledProcessError: Command '['pkg-config', '--libs-only-L', 'libcgraph']' returned non-zero exit status 1

    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/tmp/pip-build-qfFpFG/pygraphviz/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-JmwjA6-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/tmp/pip-build-qfFpFG/pygraphviz/

I tried the solutions provided by Python does not see pygraphviz, but it doesn’t work.

Asked By: SparkAndShine

||

Answers:

On macOS, I made it with,

$ brew install graphviz
$ sudo pip install pygraphviz
Answered By: SparkAndShine

For fedora users:

  1. yum list available graphviz*
  2. select the appropriate package for your Fedora distribution
  3. sudo yum install 'graphviz-devel.x86_64'
  4. pip install pygraphviz
Answered By: Edouard Amosse
sudo apt-get install python-dev graphviz libgraphviz-dev pkg-config

or the following might be needed if you’re using Python 3:

sudo apt-get install python3-dev graphviz libgraphviz-dev pkg-config

then

pip install pygraphviz
Answered By: Dhiraj Dhule

For CentOS.
As graphviz-devel is required to fix this issue, you will need to install it with yum. To do this you are required to add repo’s where package is available. In my case Atomic repos worked fine.

wget -q -O - http://www.atomicorp.com/installers/atomic | sh

This will add atomic repos, then

sudo yum install graphviz-devel

And you should be able to perform

pip install pygraphviz
Answered By: wolendranh

For MacOS, I needed to do:

$ brew install graphviz
$ sudo pip install pygraphviz 
Answered By: Rob

I ran into this problem when creating a Dockerfile for Django with a python-alpine image.

I was able to solve it thanks to this post adding the package "graphviz-dev" along with the rest of my app’s dependencies.

Example:

#Install dependencies
RUN apk add --update --no-cache --virtual .build-deps 
    build-base 
    alpine-sdk 
    postgresql-dev 
    libffi-dev 
    python3-dev 
    libffi-dev 
    jpeg-dev 
    zlib-dev 
    musl-dev 
    libpq 
    graphviz-dev   
    && pip install --no-cache-dir -r /code/requirements_dev.txt 
    && find /usr/local 
        ( -type d -a -name test -o -name tests ) 
        -o ( -type f -a -name '*.pyc' -o -name '*.pyo' ) 
        -exec rm -rf '{}' +

Regards

Answered By: feder1c0