astrojuanlu / fenics-recipes

This repository contains conda recipes for the FEniCS libraries
The Unlicense
13 stars 15 forks source link

Error occurred when import dolfin module #24

Closed zhuliwuhan closed 9 years ago

zhuliwuhan commented 9 years ago

Hi, My OS is ubuntu 14.04. I am using Anaconda Python distribution. I run the line "conda i nstall fenics mkl --channel juanlu001" to install fenics

But something went wrong as I import dolfin. Error information as follow: '' libboost_filesystem.so.1.55.0: cannot open shared object file: No such file or directory ''

I found that there is '' libboost_filesystem.so.1.57.0" file in my computer. How can I deal with that?

Thanks

Li

GaZ3ll3 commented 9 years ago

possibly duplicate here with #8 , you can install libboost 1.55 on your own.

conda install "boost=1.55" --channel juanlu001

however, I encountered this before on 14.04, the libboost problem was gone , but libcppunit problem will come out, use apt-get libcppunit-1.13.0 can fix, while finally, a problem related to libstdc++ will come up.

ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/lurker/Documents/anaconda/envs/fenics/lib/python2.7/site-packages/dolfin/cpp/_common.so

which indicates

If you already have an older version of libstdc++ installed then the error might look like one of the following instead:

./a.out: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found
./a.out: /usr/lib/libstdc++.so.6: version `CXXABI_1.3.8' not found

This means the linker found /usr/lib/libstdc++.so.6 but that library belongs to an older version of GCC than was used to compile and link the program a.out (or some part of it). The program depends on code defined in the newer libstdc++ that belongs to the newer version of GCC, so the linker must be told how to find the newer libstdc++ shared library.

which means gcc-4.8 is kind of old for building. Probably installing gcc-4.9 will help. See here http://askubuntu.com/questions/466651/how-do-i-use-the-latest-gcc-4-9-on-ubuntu-14-04

astrojuanlu commented 9 years ago

Thanks @zhuliwuhan for the bug report and @GaZ3ll3 for the detailed walkthrough. I am trying to reproduce your steps but I am facing an unrelated error.

On the other hand, unless there is no other way I will try to use all the default packages in Ubuntu 14.04 for building.

zhuliwuhan commented 9 years ago

Thanks @GaZ3ll3 and @Juanlu001 . I installed libboost 1.55 as @GaZ3ll3 mentioned, however another problem related to "libblas.so" come up. So I am still stuck in there.

I went back to installation webpage on Fenicsd Project. There is another way to install by using Ubuntu PPA. So I added the FEniCS PPA to my system to get the latest FEniCS release. See here http://fenicsproject.org/download/ubuntu_details.html

It works quite good and simply. I think it's an alternative way for me. Thanks you all the same.

astrojuanlu commented 9 years ago

Exactly, I can't find "libblas.so" either. That is what I am trying to fix now.

astrojuanlu commented 9 years ago

I uploaded a new dolfin package which should fix the libblas linking problem and the boost version specification. Could you please confirm if it works? Do conda install dolfin --channel juanlu001.

GaZ3ll3 commented 9 years ago

I kinda know why mine works, I have already MKL installed and configured the path, and I looked at the installation log, it seems BLAS dir is already detected somehow.

astrojuanlu commented 9 years ago

I have tried the new packages in a couple of different distros and everything seems to work. I am closing this issue, please don't hesitate to reopen if it persists or open a new one.

zhuliwuhan commented 9 years ago

Thank you @Juanlu001 and @GaZ3ll3. Everything works fine now after updating the dolfin package.

ghost commented 9 years ago

Hi @Juanlu001, I am trying to install FEniCS via your channel. Upon running the demo ~/.anaconda3/envs/fenics27/share/dolfin/demo/documented/poisson/python/demo_poisson.py I get an error related to boost:

ImportError:/home/user/.anaconda3/envs/fenics27/lib/python2.7/site-packages/ufc/../../../libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/lib/libboost_filesystem.so.1.58.0);

Apparently FEniCS/Dolfin is trying to use the system version of boost instead of the one from your channel.

ps: I am on Arch Linux and I am using the Python 3.x version of Anaconda. The latter should not matter, I think, because FEniCS is installed in a separate environment with Python 2.x

astrojuanlu commented 9 years ago

Hello @cfbaptista, that is strange. Can you try the following and post the outputs somewhere? (Maybe gist.github.com)

$ source activate fenics27
$ conda info -a
$ conda list
$ which python
$ python ~/.anaconda3/envs/fenics27/share/dolfin/demo/documented/poisson/python/demo_poisson.py
ghost commented 9 years ago

Hi @Juanlu001, I have posted the output you requested at this gist. Thanks for your support!

astrojuanlu commented 9 years ago

I opened a new issue to discuss that, please head there. Thanks!

mthewissen commented 8 years ago

I don't think this should be closed. I still encounter exactly the same error as the OP (be it on CentOS 6.6). Trying the demo_poisson.py also gives

ImportError: libboost_filesystem.so.1.55.0: cannot open shared object file: No such file or directory

Upon installation it says indeed:

The following NEW packages will be INSTALLED:
    boost:            1.57.0-4             defaults       
    ect.

Whereas this ought to be 1.55 for dolfin version 1.4. Can you revert to a latest working version of some kind? Thanks for maintaining.

mthewissen commented 8 years ago

FWIW, I managed to get version 1.4 working on an older system using the following:

conda install dolfin=1.4.0 boost=1.55 eigen3 ffc petsc petsc4py instant ufl fiat swig=3.0.2 vtk=5.10 fenics=1.4.0 mkl scientificpython --channel https://conda.binstar.org/juanlu001/channel/fenics:1.4.0:centos