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