bcm-uga / Loter

A software package for local ancestry inference and haplotype phasing
Other
38 stars 7 forks source link

error Library _loter_wrap.so not found #3

Closed ronaldrobles closed 5 years ago

ronaldrobles commented 5 years ago

After installing conda install numpy conda install scipy conda install pandas conda install scikit-learn

And following the tutorial I have the error in:

import loter.locanc.local_ancestry as lc Traceback (most recent call last): File "", line 1, in File "/home/ronald/anaconda2/envs/Meddly/Loter/python-package/loter/locanc/local_ancestry.py", line 5, in import loter.pipeline as lt File "/home/ronald/anaconda2/envs/Meddly/Loter/python-package/loter/pipeline.py", line 6, in import loter.opti as opti File "/home/ronald/anaconda2/envs/Meddly/Loter/python-package/loter/opti.py", line 1, in import loter.estimatea as esta File "/home/ronald/anaconda2/envs/Meddly/Loter/python-package/loter/estimatea.py", line 5, in import loter.datastruct.parameter as parameter File "/home/ronald/anaconda2/envs/Meddly/Loter/python-package/loter/datastruct/parameter.py", line 4, in from loter.find_lib import _LIB File "/home/ronald/anaconda2/envs/Meddly/Loter/python-package/loter/find_lib.py", line 35, in _LIB = _get_lib() File "/home/ronald/anaconda2/envs/Meddly/Loter/python-package/loter/find_lib.py", line 28, in _get_lib raise LoterLibraryNotFound("Library _loter_wrap.so not found") loter.find_lib.LoterLibraryNotFound: Library _loter_wrap.so not found

gdurif commented 5 years ago

Hi, thanks for the bug report. So if I'm correct, you have a Conda environment Meddly, and you have done something like that ?

source activate Meddly
conda install numpy
conda install scipy
conda install pandas
conda install scikit-learn
cd Loter/python-package
python setup.py install

Did you do recently clone the repository or do a git pull origin master ? because we introduced some modifications about compilation a few days ago.

Could you activate your Conda environment, and run import sys; print(sys.path) in Python (or print sys.path if you are using Python 2) ? Thanks

ronaldrobles commented 5 years ago

Thank you for your support.

(meddly) ronald@ronald-VirtualBox:~/Loter/python-package$ python

import sys; print(sys.path) ['', '/home/ronald/anaconda3/envs/meddly/lib/python36.zip', '/home/ronald/anaconda3/envs/meddly/lib/python3.6', '/home/ronald/anaconda3/envs/meddly/lib/python3.6/lib-dynload', '/home/ronald/anaconda3/envs/meddly/lib/python3.6/site-packages']

I have also tested in the ROOT environment, and the erro is different:

import loter.locanc.local_ancestry as lc Traceback (most recent call last): File "", line 1, in File "/home/ronald/Loter/python-package/loter/locanc/local_ancestry.py", line 5, in import loter.pipeline as lt File "/home/ronald/Loter/python-package/loter/pipeline.py", line 6, in import loter.opti as opti File "/home/ronald/Loter/python-package/loter/opti.py", line 1, in import loter.estimatea as esta File "/home/ronald/Loter/python-package/loter/estimatea.py", line 5, in import loter.datastruct.parameter as parameter File "/home/ronald/Loter/python-package/loter/datastruct/parameter.py", line 4, in from loter.find_lib import _LIB File "/home/ronald/Loter/python-package/loter/find_lib.py", line 35, in _LIB = _get_lib() File "/home/ronald/Loter/python-package/loter/find_lib.py", line 31, in _get_lib lib = C.cdll.LoadLibrary(selected_lib) File "/home/ronald/anaconda3/lib/python3.6/ctypes/init.py", line 422, in LoadLibrary return self._dlltype(name) File "/home/ronald/anaconda3/lib/python3.6/ctypes/init.py", line 344, in init self._handle = _dlopen(self._name, mode) OSError: /home/ronald/anaconda3/lib/python3.6/site-packages/loter-0.1-py3.6-linux-x86_64.egg/loter/_loter_wrap.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE

its sys. path is:

import sys; print(sys.path) ['', '/home/ronald/anaconda3/lib/python36.zip', '/home/ronald/anaconda3/lib/python3.6', '/home/ronald/anaconda3/lib/python3.6/lib-dynload', '/home/ronald/anaconda3/lib/python3.6/site-packages', '/home/ronald/anaconda3/lib/python3.6/site-packages/Sphinx-1.5.1-py3.6.egg', '/home/ronald/anaconda3/lib/python3.6/site-packages/loter-0.1-py3.6-linux-x86_64.egg', '/home/ronald/anaconda3/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg']

. . . Finally I installed a new ubuntu (I forgot to mention I'm working in VirtualBox) and installed all the necessary but without using anaconda. I obtain the same error "loter.find_lib.LoterLibraryNotFound: Library _loter_wrap.so not found" its sys. path is:

import sys; print(sys.path) ['', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages', '/home/robles/Loter/python-package']

Thanks for the solution

gdurif commented 5 years ago

Hi, sorry for the delay. So I was not able to replicate the problem with Anaconda3-5.2.0, however I was able to replicate it with Anaconda2-5.0.1, I continue to investigate it. I don't know why the behavior would be different depending on Anaconda version.

gdurif commented 5 years ago

What is your Anaconda version ?

gdurif commented 5 years ago

Commit 7aac1aa should fix the problem. You can do a git pull and try to reinstall the package.

gdurif commented 5 years ago

@ronaldrobles could you tell me if the fix works for you ?