Module Loading and Compilation

So far, this chapter has presented modules as files containing Python code. However, modules loaded with import really fall into four general categories:

  • Code written in Python (.py files)

  • C or C++ extensions that have been compiled into shared libraries or DLLs

  • Packages containing a collection of modules

  • Built-in modules written in C and linked into the Python interpreter

When looking for a module (for example, foo), the interpreter searches each of the directories in sys.path for the following files (listed in search order):

  1. A directory, foo, defining a package.

  2. foo.so, foomodule.so, foomodule.sl, or foomodule.dll (compiled extensions).

  3. foo.pyo (only if the -O or -OO option has been used).

  4. foo.pyc.

  5. foo.py. (On Windows, ...

Get Python: Essential Reference, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.