adc-connect / adcc

adcc: Seamlessly connect your program to ADC
https://adc-connect.org
GNU General Public License v3.0
32 stars 19 forks source link

Installation issue on Ubuntu:18.04 #133

Closed proexcuse closed 2 years ago

proexcuse commented 2 years ago

Hi,

I came across an installation issue. I installed adcc as follows: Ubuntu:18.04, using gcc8.3.0 apt-get install -y libopenblas-base apt-get install -y python3-dev build-essential pip install pybind11 pyscf h5py==2.10.0 adcc

Then I tried to import adcc, but got an error as follows: ImportError: libtensorlight.so: cannot open shared object file: No such file or directory.

Does anyone know how to fix it?

mfherbst commented 2 years ago

For some reason you seem to be missing the compiled libtensorlight library. That should have been installed automatically by pip install adcc.

proexcuse commented 2 years ago

I found $HOME/.local/lib/libtensorlight.so. But pip uninstall and install didn't work.

Can I explicitly set this path when the program reads libtensorlight, like by environment variables?

mfherbst commented 2 years ago

Sorry about the delay.

Yes there is some way to configure the setup process, namely by dropping a file $HOME/.adcc/siteconfig.py following the example https://github.com/adc-connect/adcc/blob/master/siteconfig_example.py. However, this is only active during install time when the path to libtensorlight is essentially soldered into the compiled part of adcc. The intention for this is to avoid these kinds of problems you are seeing. For some reason this seems to fail on your machine, though. Sorry about that.

I guess what you can try is setting LD_LIBRARY_PATH (e.g. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.local/lib).

Can you also try an import libadcc (the compiled part of adcc) and report the error here if any?

proexcuse commented 2 years ago

Still stuck on this problem. Some things happened and I now need to install adcc using docker, and I got into the same problem.

Setting LD_LIBRARY_PATH did not work. I checked that LD_LIBRARY_PATH was set properly by os.environ, but still got missing libtensorlight error. This is weird because I can find libtensorlight in this path but still python insists that it's missing.

import libadcc produced the same missing libtensorlight error.

Proper Dockerfile would greatly help me if somebody created one.

maxscheurer commented 2 years ago

Could you try installing adcc via conda in a fresh environment?

conda create -n adcc_env adcc python=3.8 -c adcc
conda activate adcc_env

If the installation works fine, there should not be that sort of problem you're currently observing.

Proper Dockerfile would greatly help me if somebody created one.

I have no experience at all with Docker and have no time to get acquainted with it right now...

proexcuse commented 2 years ago

The problem was about the permission to /root. After changing the installation directory, everything went fine.

Thanks a lot for your help.