I\'m creating a project that uses Python OpenCV. My image processing is a bit slow, so I thought I can made the code faster by creating a .pyd
file (I read that
Use cythonize with respective dependencies:
from setuptools.extension import Extension
extensions.append(Extension("write the file names.pyx"))
from Cython.Build import cythonize
ext_modules = cythonize(extensions)
then,
setup(ext_modules=ext_modules, **setup_kwargs)
You have to run a setup.py
file in a terminal. This one is an example that uses numpy
try:
from setuptools import setup
from setuptools import Extension
except ImportError:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import numpy as np
ext_modules = [Extension("my_code_cython",["my_code_cython.pyx"]),
Extension("another_code_cython",["another_code_cython.pyx"])]
setup(
name= 'Generic model class',
cmdclass = {'build_ext': build_ext},
include_dirs = [np.get_include()],
ext_modules = ext_modules)
In the terminal (cmd in Windows) you have to execute the command
python setup.py build_ext --inplace
It is important that I suppose you have installed the compiler (Microsoft Visual C++ Compiler Package for Python 2.7 for example). You can find more information in https://github.com/cython/cython/wiki/CythonExtensionsOnWindows