0. install pysap¶

python

pip install git+https://github.com/CEA-COSMIC/pysap.git

1. install Sparse2D¶

python

from pysap.extensions import sparse2d
print(sparse2d) 

output

/home/home/miniconda3/envs/tensor/lib/python3.11/site-packages/pysap/extensions/transform.py:41: UserWarning: Sparse2D Python bindings not found. Any call to a Sparse2D transform or a plug-in method that uses a Sparse2D transform will result in an error. warnings.warn(
/home/home/miniconda3/envs/tensor/lib/python3.11/site-packages/pysap/extensions/sparse2d.py:25: UserWarning: Sparse2d python bindings not found, use binaries. warnings.warn("Sparse2d python bindings not found, use binaries.")

bash

git clone https://github.com/CosmoStat/Sparse2D.git
cd Sparse2D
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=../install -DONLY_SPARSE=ON -DUSE_FFTW=OFF -DBUILD_CFITSIO=ON
make -j8
make install

find path of pysparse.cpython-311-x86_64-linux-gnu.so, then add path like

bash

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/home/projects/tensor/Sparse2D/install/lib' >> ~/.bashrc
source ~/.bashrc

python

from pysap.extensions import sparse2d
print(sparse2d) 

output

<module 'pysap.extensions.sparse2d' from '/home/home/miniconda3/envs/tensor/lib/python3.11/site-packages/pysap/extensions/sparse2d.py'>

2. check for dependencies of shared libraries¶

bash

ldd /home/home/projects/tensor/Sparse2D/install/lib/pysparse.cpython-311-x86_64-linux-gnu.so

output

linux-vdso.so.1 (0x00007ffd579f7000)
libcfitsio.so.9 => not found
libpython3.11.so.1.0 => not found
libgomp.so.1 => /home/home/miniconda3/envs/tensor/lib/libgomp.so.1 (0x00007f250db52000)
libstdc++.so.6 => /home/home/miniconda3/envs/tensor/lib/libstdc++.so.6 (0x00007f250d93e000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f250d84c000)
libgcc_s.so.1 => /home/home/miniconda3/envs/tensor/lib/libgcc_s.so.1 (0x00007f250d832000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f250d620000)
libz.so.1 => /home/home/miniconda3/envs/tensor/lib/libz.so.1 (0x00007f250d602000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f250d5fd000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f250d5f8000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f250d5f1000)
/lib64/ld-linux-x86-64.so.2 (0x00007f250e637000)

find path of libcfitsio.so.9 , then add path like

bash

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/home/projects/tensor/Sparse2D/build/lib' >> ~/.bashrc
source ~/.bashrc

find path of libpython3.11.so.1.0 , then add path like

bash

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/home/miniconda3/envs/tensor/lib' >> ~/.bashrc
source ~/.bashrc

If can not find libcfitsio.so.9 or libpython3.11.so.1.0 , first do sudo apt-get install libcfitsio-dev

bash

echo $LD_LIBRARY_PATH

output echo $LD_LIBRARY_PATH /usr/local/cuda-12.6/lib64::/home/home/projects/tensor/Sparse2D/build/lib:/home/home/projects/tensor/Sparse2D/install/lib:/home/home/miniconda3/envs/tensor/lib

bash

ldd /home/home/projects/tensor/Sparse2D/install/lib/pysparse.cpython-311-x86_64-linux-gnu.so

output

linux-vdso.so.1 (0x00007ffd72dcf000)
libcfitsio.so.9 => /home/home/projects/tensor/Sparse2D/build/lib/libcfitsio.so.9 (0x00007f0ca309b000)
libpython3.11.so.1.0 => /home/home/miniconda3/envs/tensor/lib/libpython3.11.so.1.0 (0x00007f0ca2ace000)
libgomp.so.1 => /home/home/miniconda3/envs/tensor/lib/libgomp.so.1 (0x00007f0ca2a8a000)
libstdc++.so.6 => /home/home/miniconda3/envs/tensor/lib/libstdc++.so.6 (0x00007f0ca2876000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f0ca2784000)
libgcc_s.so.1 => /home/home/miniconda3/envs/tensor/lib/libgcc_s.so.1 (0x00007f0ca276a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0ca2558000)
libz.so.1 => /home/home/miniconda3/envs/tensor/lib/libz.so.1 (0x00007f0ca253a000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f0ca2535000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f0ca2530000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f0ca2529000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0ca356f000)

3. test¶

python

from pysap.extensions import sparse2d
print(sparse2d)

output

<module 'pysap.extensions.sparse2d' from '/home/home/miniconda3/envs/tensor/lib/python3.11/site-packages/pysap/extensions/sparse2d.py'>

python

import pysparse
print(pysparse)

output

<module 'pysparse' from '/home/home/miniconda3/envs/tensor/lib/python3.11/site-packages/pysparse.cpython-311-x86_64-linux-gnu.so'>