I'm using Cython to generate compiled .so files for a couple of python modules I have. As outlined in the Cython documentation, you can create a setup.py file as follows:
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize([
'MyModule1.py',
'MyModule2.py',
'MyModule3.py'
])
)
and then build the modules using the command python3 setup.py build_ext --inplace
.
This works fine, however it creates binaries that match the architecture of the host machine (in my case x86_64). I would like to target a different architecture (armv7l) whose cross compile and environment I already have. Is it possible to do so with python distutils?
Pass in an alternative
march
and related flags viaextra_compile_args
on the extension:Requires working build tool chain for armv7l.
Docker container for an armv7l based linux would probably be easier to use, though, and would automate the arm build.
As in can run the docker container build in a script and generate native packages for all architectures and OS that you want.