Update python/README.md

release/4.3a0
Ellon Mendes 2015-12-02 14:35:51 +01:00
parent 4f509c2dff
commit 87211319fb
1 changed files with 5 additions and 4 deletions

View File

@ -3,15 +3,16 @@ 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:
* 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.