Skip to content
efifogel edited this page Mar 27, 2019 · 120 revisions

About CGAL TAU Python Bindings

This repository contains software for binding CGAL TAU components (written in C++) with Python. In particular it contains source code for the bindings, examples, tests, and benchmarks.

Installing

Naturally, you need to install Python and CGAL before attempting to use the bindings.

Python & Pip

We use Python 3.

Ubuntu

Install Python via the standard apt-get installation procedure. Install Pip once via a dedicated procedure and then upgrade via Pip. Install Python modules via Pip.

#!bash

# Install Python 3
> sudo apt-get install python3
# Verify
> python3 --version
# Set up your system to build binary Python packages
> sudo apt-get install -y python3-dev
# Install Pip
> curl -LO https://bootstrap.pypa.io/get-pip.py
> python3 get-pip.py --user
# Upgrade (not really necessary---already up-to-date)
> pip3 install -U pip --user
# Verify
> pip3 --version
> which pip3
# Install popular Python packages
> pip3 install --user numpy
> pip3 install --user pipenv
> pip3 install --user pytest
> pip3 install --user pybind11

Binding Products

We have compared three different products to create Python bindings, namely:

  1. **Boost Python **
  2. Pybind11
  3. **Swig **

In order to use Boost Python you need to install it. Boost is a dependency of CGAL. When you install CGAL, it is recommended installing all Boost components. If not installed already though, install the Python component python35.

Pybind11 is a header-only product.

Ubuntu

#!bash


# Obtain the sources
> git clone https://github.com/pybind/pybind11.git
# Set the PYBIND11_DIR  environment variable to point at the header directory
> export PYBIND11_DIR <pybind11-root-directory>/include

The PYBIND11_DIR environment variable is used by the CMakeLists.txt file to build the Pybind11 bindings.

Benchmarks

Bindings

Tests

Clone this wiki locally