Yurttas/PL/SL/python/docs/core-python-programming/doc/20/dist/node11.html

From ZCubes Wiki
Jump to navigation Jump to search

3.3.1 Extension names and packages

The first argument to the Extension constructor is always the name of the extension, including any package names. For example,

Extension("foo", ["src/foo1.c", "src/foo2.c"])

describes an extension that lives in the root package, while

Extension("pkg.foo", ["src/foo1.c", "src/foo2.c"])

describes the same extension in the pkg package. The source files and resulting object code are identical in both cases; the only difference is where in the filesystem (and therefore where in Python's namespace hierarchy) the resulting extension lives.

If you have a number of extensions all in the same package (or all under the same base package), use the ext_package keyword argument to setup(). For example,

setup(...
      ext_package = "pkg",
      ext_modules = [Extension("foo", ["foo.c"]),
                     Extension("subpkg.bar", ["bar.c"])]
     )

will compile foo.c to the extension pkg.foo, and bar.c to pkg.subpkg.bar.


See About this document... for information on suggesting changes.