guglielmosanchini / ClustViz

Visualization of many Clustering Algorithms, via Notebook or GUI
MIT License
21 stars 13 forks source link

RuntimeError: Could not load METIS dll: /usr/local/lib/libmetis.so #1

Closed banyous closed 4 years ago

banyous commented 4 years ago

Hi, First of all I love your script! Great work! Unfortunately I am somehow unable to correctly excute the sample script you provided in the readme. When i try to import : from clustviz.optics import OPTICS, plot_clust I get the error : RuntimeError: Could not load METIS dll: /usr/local/lib/libmetis.so

I tried to manually configure metis using

make config shared=1
make install 

Any ideas?

Thank you

guglielmosanchini commented 4 years ago

Thank you. Yes, the METIS library is the biggest pain point of this package. So, supposing that you are running on a MacOS (otherwise please tell me what operating system you are using), it seems you didnt export the variable. you should run:

export METIS_DLL=/usr/local/lib/libmetis.dylib

or, if you are running on Linux, use libmetis.so instead of libmetis.dylib

banyous commented 4 years ago

Hi, Sorry forget to mention it . I am running the code on Ubuntu machine, I did the export but the same error still occur:

raise RuntimeError('Could not load METIS dll: %s' % _dll_filename)
RuntimeError: Could not load METIS dll: /usr/local/lib/libmetis.dylib
guglielmosanchini commented 4 years ago

could you please check that your run

export METIS_DLL=/usr/local/lib/libmetis.so

with .so, not with dylib, since you are on Ubuntu. Additionally, check if the file libmetis.so exists in the path /usr/local/lib/

Because, from the error, it looks like you have to overwrite the environment variable METIS_DLL with the correct one (.so, not .dylib)

banyous commented 4 years ago

Yes. The first export I run was export METIS_DLL=/usr/local/lib/libmetis.so There is no libmetis.so file in /usr/local/lib/ path. How do I need to proceed to add it ? Thanks

guglielmosanchini commented 4 years ago

we could try in three different ways: 1) try to see if in this path

../metis-5.1.0/build/Linux-x86_64/libmetis/

you can find libmetis.so; if it is the case, try to export METIS_DLL with this path (use the full path, e.g. /Users/JohnSmith/Desktop/metis-5.1.0/build/Linux-x86_64/libmetis.so ) and then try to import metis or run the example

if 1) doesnt work, try:

2) reperform all the steps in the Instructions of the README relative to installing the METIS library, i.e.

wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz gunzip metis-5.1.0.tar.gz tar -xvf metis-5.1.0.tar rm metis-5.1.0.tar cd metis-5.1.0 make config shared=1 make install export METIS_DLL=/usr/local/lib/libmetis.so

and see if it works this time, let me know

3) you could also try to delete the environment variable METIS_DLL, and see if it works

guglielmosanchini commented 4 years ago

by the way, did you also run pip install metis ?

banyous commented 4 years ago

Thanks a lot, I resolved the problem by following your first step. I had just to look for the /metis-5.1.0/build/Linux-x86_64/libmetis/ path which was in my Home directory. Thanks again

guglielmosanchini commented 4 years ago

You are welcome, I'm glad it worked. This library has been used to develop the https://github.com/guglielmosanchini/ClustVizGUI, so if you find you dont need to use it in a notebook, feel free to try the GUI version