Provides Python bindings for the Libosmium C++ library, a library for working with OpenStreetMap data in a fast and flexible manner.
Python >= 2.7 is supported but a version >= 3.3 is strongly recommended.
Other requirements are:
- Python setuptools
- protozero, expat, libz, libbz2 and Boost iterator (see also Libosmium dependencies)
- a recent C++ compiler (Clang 3.4+, GCC 4.8+)
You have to compile with the same compiler version that Python is compiled with on your system, otherwise it might not work.
On Debian/Ubuntu systems all required dependencies can be installed with:
sudo apt-get install build-essential libboost-python-dev \ libexpat1-dev zlib1g-dev libbz2-dev
Homebrew (OS X)
On OS x Boost.Python needs to be installed with
brew install boost-python or
brew install boost-python3
depending on which Python version you want to use. You can also (re)install
The recommended way to install pyosmium is via pip:
pip install osmium
There are also experimental binary wheels for Windows available.
Compiling from Source
When compiling from source, you need to get the latest libosmium version
first. It is recommended to put it next to the pyosmium source. The setup
script uses per default either a globally installed libosmium or
looks for the source in
../libosmium. You can set a custom location with
To use a custom boost installation, set
To compile the bindings, run
python setup.py build
To compile and install the bindings, run
python setup.py install --user
to install only for your user, or
python setup.py install
to install globally.
example directory contains small examples on how to use the library.
They are mostly ports of the examples in Libosmium and osmium-contrib.
There is a small test suite in the test directory. This provides regression test for the python bindings, it is not meant to be a test suite for Libosmium.
You'll need the Python
nose module. On Debian/Ubuntu install the package
python-nose. For Python2
mock is required as well (package
The suite can be run with:
cd test python run_tests.py
First compile the bindings as described above and then run:
cd doc make html
For building the man pages for the tools run:
cd doc make man
Bugs and Questions
If you find bugs or have feature requests, please report those in the github issue tracker.
Pyosmium is available under the BSD 2-Clause License. See LICENSE.TXT.
Sarah Hoffmann (email@example.com)