A Library for Spherical Geometry
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Build Status

This package has Python bindings which target Python 2.7. You can also use it as a C++ library.

In Python code, import s2.


You'll need the development (-dev or -devel) versions of these libraries in order to build the library.

  • OpenSSL (used for BIGNUM functions)

You'll need these build-time dependencies:

  • CMake
  • SWIG (must be swig in your PATH)

A C++ compiler supporting C++11 (g++ 4.8 or later, clang 3.3 or later) is also required.

Mac OS X specific notes

Make sure you are using python.org Python, and that it is the default in your path (not Apple's Python or Macports Python).

Other dependencies will need to be installed with MacPorts using the +universal build flag.

Make sure /opt/local/bin and /Library/Frameworks/Python.framework/Versions/2.7/bin are not only listed in $PATH, but also in /etc/paths before /usr/bin (otherwise Python bindings will fail to build).


The Linux From Scratch way (also for OSX)

cd geometry
cmake .
make -j3
sudo make install

Then to install Python 2.7 bindings:

cd python
cmake .
sudo make install

As a Debian package

This is currently broken, and needs to be ported to cmake.

apt-get install python-dev debhelper libgflags-dev cdbs swig build-essential fakeroot autoconf libtool pkg-config
pushd ..
tar jcf s2_1.0.0.orig.tar.bz2 s2-geometry-library/ --exclude=.git
dpkg-buildpackage -rfakeroot

Installing the Debian package

Once built:

dpkg -i ../libs2*.deb ../python-s2*.deb

Running the tests (Python)

python test.py