gtsam/python
Chris Beall cd0215d9a8 Add back empty __init__.py file for gtsam_tests. Seems required to be able to do "import gtsam_tests", but it can be empty. 2016-01-24 23:47:36 -05:00
..
gtsam Adapt to new dir structure 2016-01-24 15:51:04 -08:00
gtsam_examples typo 2016-01-24 20:54:16 -05:00
gtsam_tests Add back empty __init__.py file for gtsam_tests. Seems required to be able to do "import gtsam_tests", but it can be empty. 2016-01-24 23:47:36 -05:00
gtsam_utils Chaned dir structure a bit 2016-01-24 15:50:31 -08:00
handwritten Used python.in to generate setup.py 2016-01-24 15:28:16 -08:00
.gitignore Fix python instalation using distutils 2015-12-02 13:35:16 +01:00
CMakeLists.txt string concat the CMake 2.8-friendly way 2016-01-24 23:29:06 -05:00
README.md Update python/README.md 2015-12-02 14:35:51 +01:00
setup.py.in Another attempt at fixing installation of _libgtsam_python.so. package_data is relative to package_dir, so the previous approach doesn't work when package_dir is in the source tree (and we don't want to copy the lib to source, or all of the source into lib). Using data_files method instead. 2016-01-24 23:22:40 -05: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.

  • The python files that compose the module are copied from python/gtsam to $BUILD_DIR/python/gtsam

  • The handwritten module source files are then compiled and linked with Boost Python, generating a shared library which can then be imported by python

  • The shared library is then copied to $BUILD_DIR/python/gtsam and renamed with a "_" prefix

  • The user can use the setup.py script inside $BUILD_DIR/python to build and install a python package, allowing easy importing into a python project. Examples (when run from $BUILD_DIR):

    • 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)

The target version of Python to create the module can be set by defining GTSAM_PYTHON_VERSION to 'X.Y' (Example: 2.7 or 3.4), or 'Default' if you want to use the default python installed in your system. Note that if you specify a target version of python, you should also have the correspondent Boost Python version installed (Example: libboost_python-py27.so or libboost_python-py34.so on Linux). If you're using the default version, your default Boost Python library (Example: libboost_python.so on Linux) should correspond to the default python version in your system.

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