Implementation of C++ Boost Python Examples, With python3.5+ support
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Examples
.gitignore
README.md

README.md

Boost Python Examples



C++ Boost Python

Boost Installation with python3 support
  • OS Ubuntu 16.10

  • From source

    • Download the latest version here

    • Description of user-config.jam please refer to here

        tar -xzvf boost_1_65_1.tar.gz
        cd boost_1_65_1
      
        # sudo find / -name "python3.5m" # If you don't know where python3.5m is
        # which python3 # If you don't know your python3 install directory
        echo "using mpi ;
        using gcc :  : g++ ;
        using python : 3.5 : /usr/bin/python3 : /usr/include/python3.5m : /usr/local/lib ;" > ~/user-config.jam
      
        ./bootstrap.sh --with-python=/usr/bin/python3 --with-python-version=3.5 --with-python-root=/usr/local/lib/python3.5 --prefix=/usr/local
        sudo ./b2 install -a --with=all
        sudo ldconfig
      
  • From apt

    sudo apt-get install libboost-all-dev
    # link libboost_python3.so
    sudo find / -name "libboost_python-py35.so"
    # cd to where you find it
    cd /usr/lib/x86_64-linux-gnu/
    sudo ln -s libboost_python-py35.so libboost_python3.so
    
  • OS Mac

      brew install boost-python --with-python3
      # if your python version or lib path is different from mine, please change
      # INCLUDE_PATH and LIBPYTHON_PATH in makefile
    
      # INCLUDE_PATH:
      # shold be the path contains "pyconfig.h", below two command can help you find the path
      # sudo find / -name "pyconfig.h"
      # python3 -c "import sys; print('\n'.join(sys.path))"
    
      # LIBPYTHON_PATH:
      # on mac, with version python3.6, lib name is: libpython3.6.dylib
      # sudo find / -name "libpython3.6"
    
Demo
  • If you install from source, and you change the prefix path when install, you need also change the BOOST_INC and BOOST_LIB in makefile
  • My default python version is python3.5 on Ubuntu, python3.6 on Mac, if you want to use with python 2.7, change "PYTHON_VERSION" in makefile
python3 hello_ext
git clone https://github.com/zpoint/Boost-Python-Examples.git
cd Boost-Python-Examples/Examples/hello_ext
make

python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import hello_ext
>>> hello_ext.greet()
'hello, world'
python2 hello_ext
git clone https://github.com/zpoint/Boost-Python-Examples.git
cd Boost-Python-Examples/Examples/hello_ext
vim makefile # change the first line "PYTHON_VERSION = None" to "PYTHON_VERSION = 2.7"
make

python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import hello_ext
>>> hello_ext.greet()
'hello, world'