gtsam/python
Ellon Mendes 09ec306013 Update __ini__.py to be supported in python 2 and 3 2015-12-02 13:35:17 +01:00
..
gtsam Update __ini__.py to be supported in python 2 and 3 2015-12-02 13:35:17 +01:00
gtsam_tests Reworked python directory structure. Added readme on constructing python module. Added first unit test for point2. Everything needed to get it passing is also here, including some renaming of variables and emitted library names 2015-12-02 13:35:14 +01:00
handwritten import_array() --> import_array1() 2015-12-02 13:35:16 +01:00
.gitignore Fix python instalation using distutils 2015-12-02 13:35:16 +01:00
CMakeLists.txt Add option to chose target python version to create module 2015-12-02 13:35:16 +01:00
README.md Fix python instalation using distutils 2015-12-02 13:35:16 +01:00
setup.py Fix python instalation using distutils 2015-12-02 13:35:16 +01:00

README.md

Python Wrapper and Packaging

This directory contains the basic setup script and directory structure for the gtsam python module. During the build of gtsam, when GTSAM_BUILD_PYTHON is enabled, the following instructions will run.

  • Wrap parses gtsam.h and constructs a cpp file called ${moduleName}_python.cpp

  • This file is then compiled and linked with BoostPython, generating a shared library which can then be imported by python

  • The shared library is then copied to python/gtsam

  • The user can use the setup.py script to build and install a python package, allowing easy importing into a python project. Examples:

    • python setup.py sdist ---- Builds a tarball of the python package which can then be distributed
    • python setup.py install ---- Installs the package into the python dist-packages folder. Can then be imported from any python file.
    • python setup.py install --prefix="your/local/install/path"---- Installs the package into a local instalation folder. Can then be imported from any python file if prefix/lib/pythonX.Y/site-packages is present in your $PYTHONPATH
  • To run the unit tests, you must first install the package on your path (TODO: Make this easier)

TODO: There are many issues with this build system, but these are the basics.