/libpy

Utilities for writing C++ extension modules.

Primary LanguageC++Apache License 2.0Apache-2.0

libpy

GitHub Actions status

libpy is a library to help you write amazing Python extensions in C++. libpy makes it easy to expose C++ code to Python. libpy lets you automatically wrap functions and classes. libpy is designed for high performance and safety: libpy extension modules should be both faster and safer than using the C API directly.

Full documentation

Requirements

libpy supports:

  • macOS/Linux
  • Python >=3.5

libpy requires:

  • gcc>=9 or clang>=10
  • numpy>=1.11.3

Optional Requirements

libpy optionally provides wrappers for the following libraries:

  • google sparsehash

Install

To install for development:

$ make

Otherwise, pip install libpy, making sure CC and CXX environment variables are set to the the right compiler.

Note: The installation of libpy will use the python executable to figure out information about your environment. If you are not using a virtual environment or python does not point to the Python installation you want to use (checked with which python and python --version) you must point to your Python executable using the PYTHON environment variable, i.e. PYTHON=python3 make or PYTHON=python3 pip3 install libpy.

Tests

To run the unit tests, invoke:

$ make test