I have a project organized as follows:
where api.py
imports cythonized extensions:
"""api.py"""" from _cython_foo import cython_fun
My setup script builds the .pyx
source inplace correctly and I'm able to use cython_fun
in the installed package:
import project.module1.api as module1 module1.cython_fun() # OK
However, pytest
complains that it cannot import the cython module since the compiled binaries are not in place until I invoke setup.
project/module1/api.py:2: in <module> from _cython_foo import cython_fun E ImportError: No module named _cython_foo
It seems like bad style to leave a bunch of precompiled binaries inside my project directory that pytest depends on, so is there a conventional way to have pytest temporarily build the cython modules for the purpose of my unit tests only?