| .. _extending-index: |
| |
| ################################################## |
| Extending and Embedding the Python Interpreter |
| ################################################## |
| |
| This document describes how to write modules in C or C++ to extend the Python |
| interpreter with new modules. Those modules can not only define new functions |
| but also new object types and their methods. The document also describes how |
| to embed the Python interpreter in another application, for use as an extension |
| language. Finally, it shows how to compile and link extension modules so that |
| they can be loaded dynamically (at run time) into the interpreter, if the |
| underlying operating system supports this feature. |
| |
| This document assumes basic knowledge about Python. For an informal |
| introduction to the language, see :ref:`tutorial-index`. :ref:`reference-index` |
| gives a more formal definition of the language. :ref:`library-index` documents |
| the existing object types, functions and modules (both built-in and written in |
| Python) that give the language its wide application range. |
| |
| For a detailed description of the whole Python/C API, see the separate |
| :ref:`c-api-index`. |
| |
| .. note:: |
| |
| This guide only covers the basic tools for creating extensions provided |
| as part of this version of CPython. Third party tools may offer simpler |
| alternatives. Refer to the `binary extensions section |
| <https://python-packaging-user-guide.readthedocs.org/en/latest/extensions.html>`__ |
| in the Python Packaging User Guide for more information. |
| |
| |
| .. toctree:: |
| :maxdepth: 2 |
| :numbered: |
| |
| extending.rst |
| newtypes.rst |
| building.rst |
| windows.rst |
| embedding.rst |