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.