Расширение и встраивание интерпретатора Python
В этом документе описано, как писать модули на C или C++, чтобы расширять интерпретатор Python новыми модулями. Такие модули могут определять не только новые функции, но и новые типы объектов и их методы. В документе также описано, как встраивать интерпретатор Python в другое приложение, чтобы использовать его в качестве языка расширения. Наконец, в нём показано, как компилировать и компоновать модули расширения, чтобы их можно было динамически загружать (во время выполнения) в интерпретатор, если базовая операционная система поддерживает эту возможность.
Предполагается, что читатель обладает базовыми знаниями о Python. Для неформального знакомства с языком см. Учебник по Python. В документе Справочник по языку Python дано более формальное определение языка. В документе Стандартная библиотека Python описаны существующие типы объектов, функции и модули (как встроенные, так и написанные на Python), благодаря которым язык можно применять в самых разных областях.
Подробное описание всего API Python/C см. в отдельном документе Справочное руководство по API Python/C.
Рекомендуемые сторонние инструменты
В этом руководстве рассматриваются только базовые инструменты для создания расширений, входящие в состав этой версии CPython. Некоторые сторонние инструменты предлагают более простые и более продвинутые способы создания расширений для Python на C и C++.
Создание расширений без сторонних инструментов
В этом разделе руководства рассматривается создание расширений на C и C++ без помощи сторонних инструментов. Он предназначен прежде всего для создателей таких инструментов, а не в качестве рекомендуемого способа создания собственных расширений на C.
См. также
PEP 489 — Многоэтапная инициализация модулей расширения
-
1. Расширение Python с помощью C или C++
- 1.1. Простой пример
- 1.2. Отступление: ошибки и исключения
- 1.3. Возвращаемся к примеру
- 1.4. Таблица методов модуля и функция инициализации
- 1.5. Компиляция и компоновка
- 1.6. Вызов функций Python из C
- 1.7. Извлечение параметров в функциях расширения
- 1.8. Именованные параметры для функций расширения
- 1.9. Создание произвольных значений
- 1.10. Счётчики ссылок
- 1.11. Написание расширений на C++
- 1.12. Предоставление API на C для модуля расширения
- 2. Определение типов расширения: учебное руководство
- 3. Определение типов расширения: разные темы
- 4. Сборка расширений на C и C++
- 5. Сборка расширений на C и C++ в Windows
Встраивание среды выполнения CPython в более крупное приложение
Иногда вместо создания расширения, работающего внутри интерпретатора Python в качестве основного приложения, желательно встроить среду выполнения CPython в более крупное приложение. В этом разделе рассматриваются некоторые детали, которые необходимо учесть для успешного выполнения этой задачи.
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/extending/index.html