Build against Python environment#
This is the most common case for a development installation on a Linux environment (including Ubuntu from WSL).
VirtualEnvWrapper is a set of convenient tools for working with virtual environments in Python. Install it with
pip install --user virtualenvwrapper
export WORKON_HOME=$HOME/.envs # Put this in your ~/.bash_profile
Using VirtualEnvWrapper, you can set up a new virtual environment for compile DLite against Python 3.9, with
mkvirtualenv -p /usr/bin/python3.9 dlite39
The -p
option to VirtualEnvWrapper allows you to select Python interpreter you want to build against.
Install Python dependencies to the new virtual environment
workon dlite39
pip install -U pip
pip install -r requirements.txt
pip install -r requirements_dev.txt
Create a new build folder and build DLite against Python 3.9
workon dlite39
mkdir build-dlite39
cd build-dlite39
cmake -DCMAKE_INSTALL_PREFIX=$VIRTUAL_ENV -DPython3_FIND_VIRTUALENV=ONLY -DPYTHON_VERSION=3.9 ..
cmake --build .
cmake --install .
If the -DPYTHON_VERSION=3.9
option to CMake is not sufficient to get CMake to compile against the correct libraries, you can make a copy of cmake/build-python3.7.cmake
and configure CMake with
cmake -C ../cmake/build-python3.7.cmake ..
By default, virtualenv does not set LD_LIBRARY_PATH
.
This will result in errors when running, for example, dlite-codegen
.
To address this, DLite patches the virtualenv activate script to set LD_LIBRARY_PATH
when running cmake --install .
(see patch activate for details).
To update LD_LIBRARY_PATH
in your current shell, please do
deactivate
workon dlite39
before running the tests
ctest