Pybind11 Module is not loading

Hello,

I am trying to compile a library on Baobab and for which I have multiple dependencies which are loaded using module

module add GCCcore/9.3.0
module add Python/3.8.2
module add CMake/3.16.4
module add GCC/9.3.0
module add GSL/2.6
module add CUDA/11.0.2
module add OpenMPI/4.0.3
module add FFTW/3.3.8
module add Bison/3.5.3
module add flex/2.6.4
module add pybind11/2.4.3-Python-3.8.2
module add CFITSIO/3.48

If I run the compilation now, I get an error that Pybind11 is not available.

On running the following command, I don’t see any paths.

echo $(echo $PATH | tr ':' '\n' | grep pybind11)

On second try, I loaded newer versions of the library for testing, (cannot be used as CFITSIO/3.49 is not available, and CFITSIO/3.48 needs GCCcore/9.3.0)

module add GCCcore/10.2.0
module add Python/3.8.6
module add CMake/3.18.4
module add GCC/10.2.0
module add GSL/2.6
module add CUDA/11.1.1
module add OpenMPI/4.0.5
module add FFTW/3.3.8
module add Bison/3.7.1
module add flex/2.6.4
module add pybind11/2.6.0

Here on running the same command, I can see that Pybind11 has been properly added to the path.

$ echo $(echo $PATH | tr ':' '\n' | grep pybind11)
/opt/ebsofts/pybind11/2.6.0-GCCcore-10.2.0/bin

On further digging around, I found that there is no bin folder in pybind11/2.4.3-Python-3.8.2 folder.

$ ls /opt/ebsofts/pybind11/2.4.3-GCCcore-9.3.0-Python-3.8.2/
easybuild  include  share

Any help on this would be appreciated.

Thanks in advance,
Vaibhav

Hi there,

Can you please provide the full commands you launched to get the error?

pybind11 is a pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, mainly to create Python bindings of existing C++ code (cf. pybind11 documentation and https://github.com/pybind/pybind11/blob/8de7772cc72daca8e947b79b83fea46214931604/README.rst ), thus you can not use it as a standalone executable, but you need to compile C++ code against it.

As I have explained above, that is perfectly fine, since the include folder contains the C++ header files while the share one the cmake files.

NB , version 2.6.0 does not provide any “runtime” binary, but a new tool to avoid typing python -m pybind11 (cf. Release Version 2.6.0 · pybind/pybind11 · GitHub ):

capello@login2:~$ ls -l /opt/ebsofts/pybind11/2.6.0-GCCcore-10.2.0/bin/
total 4
-rwxr-xr-x 1 root root 251 Mar 19 17:57 pybind11-config
capello@login2:~$ 

I thus guess the library you are trying to compile supports only pybind11 version 2.6.0 or later.

Thx, bye,
Luca