3.3.1 Nombre de extensiones y de paquetes

El primer argumento del constructor de Extension siempre es el nombre de la extensión, nombres de paquetes incluidos. Por ejemplo,

Extension("foo", ["src/foo1.c", "src/foo2.c"])
describe una extensión que reside en el paquete raíz, mientras
Extension("pkg.foo", ["src/foo1.c", "src/foo2.c"])
describe la misma extensión del paquete pkg. Los archivos fuente y el código objeto resultante son idénticos en ambos casos. La única diferencia es dónde reside la extensión resultante (y, consecuentemente, su lugar dentro de la jerarquía de espacios nominales de Python).

Si hay varias extensiones dentro del mismo paquete (o dentro del mismo paquete base), se debe usar el argumento clave ext_package al llamar a la función setup(). Por ejemplo,

setup(...
      ext_package = "pkg",
      ext_modules = [Extension("foo", ["foo.c"]),
                    Extension("subpkg.bar", ["bar.c"])]
     )
compilará foo.c a la extensión pkg.foo y bar.c a pkg.subpkg.bar.


Ver Sobre este documento... para obtener información sobre sugerencias.