pip install pygraphviz: No package 'libcgraph' found

28,112

Solution 1

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

Solution 2

For MacOS, I needed to do:

$ brew install graphviz
$ sudo pip install pygraphviz 

Solution 3

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

Solution 4

On macOS, I made it with,

$ brew install graphviz
$ sudo pip install pygraphviz

Solution 5

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
Share:
28,112
SparkAndShine
Author by

SparkAndShine

For more about me, please refer to, Blog: sparkandshine.net GitHub: https://github.com/sparkandshine WeChat: SparkAndShine

Updated on July 05, 2022

Comments

  • SparkAndShine
    SparkAndShine almost 2 years

    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('\r\n', '\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('\r\n', '\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.

  • Brian Stormont
    Brian Stormont almost 7 years
    I found I needed to first do sudo apt-get install python-dev, otherwise I'd get a compile error about a missing Python.h when doing the pip install pygraphviz.
  • Dhiraj Dhule
    Dhiraj Dhule almost 7 years
    I have updated the python-dev requirement in case somebody has similar problem. Thanks.
  • Trenton
    Trenton almost 7 years
    I was using an virtualenv and Python 3 and I was able to do pip install graphviz without any additional options and it worked fine (after brew install graphviz).
  • Jyotirmay
    Jyotirmay almost 7 years
    Oh maann.. Thankx a lot.. This works perfectly for me. You saved my day and my ass being kicked off. :)
  • Rob
    Rob about 6 years
    As per @Trenton's note--I found all requirements satisfied on pip install graphviz after I had run brew install graphviz note the brew install pauses a long time on font stuff.
  • Itay
    Itay almost 6 years
    Didn't work for me. After installing graphviz, I had to download the git project of pygraphviz and use sudo python3 setup.py install --include-path=/usr/local/Cellar/graphviz/2.40.1/include/gra‌​phviz --library-path=/usr/local/Cellar/graphviz/2.40.1/lib
  • Jersey_Guy
    Jersey_Guy almost 6 years
    I followed this path for CentOS and was successful.
  • rer
    rer over 5 years
    In the first step, you can specify the python version you want: e.g. sudo apt-get install python3.6-dev. The default is 2.7. Also, for the second step using sudo gave me a pip import error, but dropping it fixed the issue and pygraphviz installed.
  • Harlin
    Harlin over 4 years
    Just a quick note. It may not be a good idea to run "sudo pip ...". It's best to keep pip as part of a virtual environment but if not, then just run pip as your regular user. See stackoverflow.com/questions/21055859/…
  • Chesco Igual
    Chesco Igual almost 4 years
    I actually followed this one, but I see it's pretty similar to yours! Thanks github.com/pygraphviz/pygraphviz/issues/86
  • Skippy le Grand Gourou
    Skippy le Grand Gourou over 3 years
    graphviz itself doesn’t seem to be necessary.
  • Skippy le Grand Gourou
    Skippy le Grand Gourou over 3 years
    @myself Well, it actually is, despite the absence of explicit dependency.
  • Jakob Guldberg Aaes
    Jakob Guldberg Aaes about 2 years
    Don't do sudo pip! Instead, use pip install --user as there is no reason to install it in the system distro. You risk ending up in an erroneous state.