error importing igraph

2019-03-03 11:54发布

On importing igraph in python, I get an error (see below). Since igraph is not part of anaconda, I executed the below outlined steps for installation.

What is libglpk.35.dylib, how should I load it, and why is this problem occurring?

igraph cannot be imported

'' import igraph
'' Traceback (most recent call last):
''   File "<stdin>", line 1, in <module>
''   File "/Users/claushaslauer/anaconda/lib/python2.7/site-packages/igraph/__init__.py", line 34, in <module>
    '' from igraph._igraph import *
'' ImportError: dlopen(/Users/claushaslauer/anaconda/lib/python2.7/site-packages/igraph/_igraph.so, 2): Library not loaded: /usr/local/lib/libgmp.10.dylib
''   Referenced from: /usr/local/lib/libglpk.35.dylib
''   Reason: image not found

installation steps

  1. install homebrew via ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. install pkg-config (via igraph-help) brew install pkg-config
  3. install igraph via homebrew: brew install igraph
  4. link: brew install homebrew/science/igraph
  5. pip install python-igraph

following suggestions from Evert:

  1. brew uninstall igraph
  2. brew uninstall gmp
  3. brew uninstall glkp -- Error: No such keg: /usr/local/Cellar/glkp
  4. brew install igraph

    ==> Installing igraph from homebrew/homebrew-science ==> Installing igraph dependency: gmp ==> Downloading https://homebrew.bintray.com/bottles/gmp-6.0.0a.yosemite.bottle. Already downloaded: /Library/Caches/Homebrew/gmp-6.0.0a.yosemite.bottle.tar.gz ==> Pouring gmp-6.0.0a.yosemite.bottle.tar.gz Error: The brew link step did not complete successfully The formula built, but is not symlinked into /usr/local Could not symlink include/gmp.h Target /usr/local/include/gmp.h already exists. You may want to remove it: rm '/usr/local/include/gmp.h'

    To force the link and overwrite all conflicting files: brew link --overwrite gmp

    To list all files that would be deleted: brew link --overwrite --dry-run gmp

    Possible conflicting files are: /usr/local/include/gmp.h /usr/local/lib/libgmp.a ==> Summary

1条回答
做个烂人
2楼-- · 2019-03-03 12:01

The glpk dependency is missing, because when installing igraph, only the default packages are searched for. glpk lives, just like igraph, in an extra homebrew repository called homebrew/science. You can automatically access that repository by "tapping" it:

brew tap homebrew/science

Now, all packages included in this repository are also searched for. To confirm, try and see if the following two commands give just the package name back:

brew search glpk

brew search igraph

Before reinstalling igraph, you have to fix the link issue with gmp; this is just a result of homebrew not completely uninstalling igraph and its dependencies during the uninstall step. For this, you can follow homebrew's suggestion:

brew link --overwrite gmp

(You're overwriting the gmp package with the previously and still partly installed gmp package; they are the same, so no harm is done.)


Now, you should be able to install igraph:

brew install igraph

If this also gives a warning/error about links, use the same --overwrite option as for gmp.

In case brew install igraph did not install glpk (i.e., you didn't see a message like "==> Installing igraph dependency: glpk"), you can simply install it separately:

brew install glpk

Give or take a minor detail, you should now have a working igraph installation (and, since you never uninstalled python-igraph, this should also still work).

查看更多
登录 后发表回答