Installation

Build requirements

For the build of the package the following dependencies must be satisfied

package

version

libh5cpp

>=0.5.0

libpninexus

>=3.0.0

libboost

>=1.60.0

numpy

gcc compiler

>=4.7

python

>=2.7 or >=3.4

Building the package

The wrapper package follows the standard Python build and installation protocoll using Python setuptools.

$ python  -m pip install . -vv --no-deps --no-build-isolation

For those who are still running on the old interface it is maybe whise to install this package in a custom location with something like this

$  python -m pip install . -vv --no-deps --no-build-isolation --prefix=<path to installation prefix>

For Python3 just replace python with python3 in the above instructions.

In order to build the Sphinx documentation use

$ sphinx-build doc/sphinx build/sphinx/html

Debian and Ubuntu users

As Debian and Ubuntu are closely related the installation is quite similar. The packages are provided by a special Debian repository. To work on the package sources you need to login as root user. Use su or sudo su on Debian and Ubuntu respectively. The first task is to add the GPG key of the HDRI repository to your local keyring

$ curl -s http://repos.pni-hdri.de/debian_repo.pub.gpg  | gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/debian-hdri-repo.gpg --import
$ chmod 644 /etc/apt/trusted.gpg.d/debian-hdri-repo.gpg

The return value of this command line should be OK. In a next step you have to add new package sources to your system. For this purpose go to /etc/apt/sources.list.d and download the sources file. For Debian (Trixie) use

$ wget http://repos.pni-hdri.de/trixie-hdri.sources

and for Ubuntu (Noble)

$ wget http://repos.pni-hdri.de/noble-pni-hdri.list

Similarly, proceed for Trixie, Bookworm, Bullseye, Resolute, Noble, Jammy. Once you have downloaded the file use

$ apt-get update

to update your package list and

$ apt-get install python-pninexus

or

$ apt-get install python3-pninexus

to install the the PNI/NeXus package for python or python3, respectively.

Manylinux wheels from PyPI

To install pninexus in a conda or python virtual environment manylinux pip wheels can be used, e.g.

$ python3 -m venv myvenv
$ . myvenv/bin/activate

$ pip install pip --upgrade
$ pip install numpy

$ pip install pninexus -U wheel

For some versions of wheels numpy needs to be installed in advance.

Starting from v3.2.2 the pninexus wheel contains the most important external filters. In order to use them one needs to set HDF5_PLUGIN_PATH e.g. by

import pninexus

More information can be found at online documentation.

Changes for a specific version of libpninexus can be found at CHANGELOG.