问题
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
- install homebrew via
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" - install pkg-config (via igraph-help)
brew install pkg-config - install igraph via homebrew:
brew install igraph - link:
brew install homebrew/science/igraph pip install python-igraph
following suggestions from Evert:
brew uninstall igraphbrew uninstall gmpbrew uninstall glkp--Error: No such keg: /usr/local/Cellar/glkpbrew 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 🍺 /usr/local/Cellar/gmp/6.0.0a: 15 files, 3.2M ==> Installing igraph ==> Downloading https://homebrew.bintray.com/bottles-science/igraph-0.7.1.yosemi Already downloaded: /Library/Caches/Homebrew/igraph-0.7.1.yosemite.bottle.tar.gz ==> Pouring igraph-0.7.1.yosemite.bottle.tar.gz 🍺 /usr/local/Cellar/igraph/0.7.1: 83 files, 6.4M
- what does "Error: The
brew linkstep did not complete successfully" imply? - I don't see anything related to
/usr/local/lib/libglpk.35.dylib-- when I call python now, the same error occurs as before.
- what does "Error: The
Solution with Evert's help
thanks Evert for the additional answer. With this content, I can import igraph now. Three things to note:
When I say
brew tap homebrew/sciene, log in with my github credentials, I getremote: Repository not found. fatal: repository 'https://github.com/Homebrew/homebrew-sciene/' not found Error: Failure while executing: git clone https://github.com/Homebrew/homebrew-sciene /usr/local/Library/Taps/homebrew/homebrew-sciene --depth=1I am not sure how critical this is, as it turned out, I can run igraph without this. However, the URL
https://github.com/Homebrew/homebrew-sciene/produces a 404 error for me.brew search glpkandbrew search igraphboth return the one line output pointing tohomebrew/science/...brew link --overwrite gmpsays it created 11 symlinks. I think this is what solved my issue so now I can import igraph fine in python.
Thanks for your help.
回答1:
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).
来源:https://stackoverflow.com/questions/30505490/error-importing-igraph