error importing igraph

拈花ヽ惹草 提交于 2019-12-02 22:36:18

问题


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 🍺 /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 link step 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.

Solution with Evert's help

thanks Evert for the additional answer. With this content, I can import igraph now. Three things to note:

  1. When I say brew tap homebrew/sciene, log in with my github credentials, I get

    remote: 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=1 
    

    I 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.

  2. brew search glpk and brew search igraph both return the one line output pointing to homebrew/science/...

  3. brew link --overwrite gmp says 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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!