Skip to content

Latest commit

 

History

History
61 lines (45 loc) · 1.41 KB

README.md

File metadata and controls

61 lines (45 loc) · 1.41 KB

Sample Python Binding Project

Requirements

Create a Python virtual environment named c2py with pyenv and pyenv-virtualenv before you start working with SWIG and Cython. For example, run the following

pyenv install 3.7.2
pyenv virtualenv 3.7.2 c2py
pyenv local c2py  # Run the command at the project root directory

and you may opt to install the packages listed in requirements.txt as follows.

pip install -U pip  # Optional
pip install -r requirements.txt

Usage

SWIG

cd swig
swig -python sample.i  # sample_wrap.c will be generated
python setup.py build_ext
python setup.py install --prefix=$PYENV_VIRTUAL_ENV

Cython

cd cython
swig -python sample.i  # fib_wrap.c will be generated
python setup.py build_ext
python setup.py install --prefix=$PYENV_VIRTUAL_ENV

ctypes

cd ctypes
gcc -shared -o libdample.so sample.c

and use the Python interactive shell like IPython

from ctypes import cdll
libc = cdll.LoadLibrary('libsample.so')

References