I moduli di estensione vengono specificati utilizzando l'opzione ext_modules. package_dir non ha effetto su quale estensione di file sorgente venga trovata; interessa solo il sorgente per i moduli in puro Python. Il caso più semplice, un singolo modulo di estensione in un singolo file sorgente C, è:
<root>/
setup.py
foo.c
from distutils.core import setup
setup(name='foobar',
version='1.0',
ext_modules=[Extension('foo', ['foo.c'])],
)
Con esattamente lo stesso schema d'albero del sorgente, questa estensione può essere inserita nel package foopkg semplicemente cambiando il nome dell'estensione:
from distutils.core import setup
setup(name='foobar',
version='1.0',
ext_modules=[Extension('foopkg.foo', ['foo.c'])],
)
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.