If you are a developer and use py3exiv2 in your project, you will find here useful information.

Getting the code

py3exiv2’s source code is versioned with bazaar, and the main development focus (sometimes referred to as trunk), is hosted on Launchpad.

To get a working copy of the latest revision of the development branch, just issue the following command in a terminal:

bzr branch lp:py3exiv2


To use py3exiv2:

To build py3exiv2:

  • python-all-dev (≥ 3.2)
  • libexiv2-dev (≥ 0.20)
  • libboost-python-dev (≥ 1.45)
  • g++

Some unit tests have a dependency on python-tz. This dependency is optional: the corresponding tests will be skipped if it is not present on the system.

Additionally, if you want to cross-compile py3exiv2 for Windows and generate a Windows installer, you will need the following dependencies:

Building and installing


Open a terminal into the top-level directory (where is the file

$ python3

The configure script try to find the exact name of libboost_python3 wich is depending on your environment. If it can’t find the lib, give it the full path of this lib with the option –libboost. Example on Debian with Python-3.4:

$ python3 --libboost=/usr/lib/x86_64-linux-gnu/

Build the lib:

$ ./

The result of the build process is a shared library,, in the build directory:

$ ls build/
$ exiv2wrapper.os  exiv2wrapper_python.os

And, if no error, install all the files:

$ ./ -i

You will most likely need administrative privileges to the last step.


The present documentation is generated using Sphinx from reStructuredText sources found in the doc/ directory. Invoke make html to (re)build the HTML documentation.

The index of the documentation will then be found under doc/_build/html/index.html.

Unit tests

py3exiv2’s source comes with a battery of unit tests, in the test/ directory. To run them, invoke python3


py3exiv2 is Free Software, meaning that you are encouraged to use it, modify it to suit your needs, contribute back improvements, and redistribute it.

Bugs are tracked on Launchpad. There is a team called py3exiv2-developers open to anyone interested in following development on py3exiv2. Don’t hesitate to subscribe to the team (you don’t need to actually contribute!) and to the associated mailing list.

There are several ways in which you can contribute to improve py3exiv2:

  • Use it;
  • Give your feedback and discuss issues and feature requests on the mailing list;
  • Report bugs, write patches;
  • Package it for your favorite distribution/OS.

When reporting a bug, don’t forget to include the following information in the report:

  • version of py3exiv2
  • version of libexiv2 it was compiled against
  • a minimal script that reliably reproduces the issue
  • a sample image file with which the bug can reliably be reproduced