Known Issues

Using Cmake directly to rebuild the c code

We advise against using cmake directly to rebuild the c code. It is preferable to use pip install -e .[dev] for initial developer installation and rebuilding the C++ code.

Using cmake directly leaves behind many cache files directories that can cause failures when subsequently running pip install. If you encounter errors like the following when attempting to pip install lephare, remove any cmake files except for the top level CMakeLists.txt file and try again.

Error: could not load cache
     Traceback (most recent call last):
     File "/private/var/folders/j7/6btbg63d4816jknbbfxh1dfc0000gn/T/pip-build-env-f05yybu9/overlay/lib/python3.12/site-packages/setuptools/command/editable_wheel.py", line 155, in run
       self._create_wheel_file(bdist_wheel)
     File "/private/var/folders/j7/6btbg63d4816jknbbfxh1dfc0000gn/T/pip-build-env-f05yybu9/overlay/lib/python3.12/site-packages/setuptools/command/editable_wheel.py", line 357, in _create_wheel_file
       files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp)

Environmental Variables

The environment variables are set when lephare is imported by python. If the import command is run a second time in the same session, the module is not reinitialized, and changes to environment variables will not be propagated through lephare.

If you change or reset the environment variables from the command line, we recommend restarting the kernel or python REPL to ensure that lephare correctly reads and uses the updated environment variables.

NaNs in the output

By default lephare uses -99 in place of NaNs. The process function will handle NaNs and return them -99.

Compilers on MacOS

We have seen compiler problems on macs. We hope that following the installation instructions should avoid these issues. If you encounter segmentation faults when using lephare on MacOS or failures to compile when running pip install -e .'[dev]' check that clang compilers are set as the default.

echo $CC
#arm64-apple-darwin20.0.0-clang
echo $CXX
#arm64-apple-darwin20.0.0-clang++

If these are not set to clang, you can attempt to set them using conda with the forllowing commands:

conda install -c conda-forge cxx-compiler

PyPI installation from source

When no PyPI binaries are available there may be issues installing from source. If we have not covered your operating system or Python version pip will attempt to install from source. If you have problems installing from source via PyPI it may be simpler to follow the developer installation instructions.

AVX2 compiler flags

Advanced Vector eXtensions (AVX) can increase performance when they are available. We have had an installation issue on high performance clusters where the node that lephare was installed on had access to AVX2 and compiled with the flag set but then failed when it was run on a node without them due to old hardware. Advanced users can switch this flag off if they encounter this issue which can be manifest in the vague error: illegal instruction (core dumped).

Installation on Fedora redhat

There may be an issue compiling lephare on Fedora/redhat, based on an attempt on a rocky 8.8 distribution (gcc 8.5.0). The compilation error is related to the std::filesystem standard library and is alleviated by adding the compilation flag stdc++fs. You can see information at stack overflow.