Расширение и встраивание интерпретатора Python
В данном документе описывается, как написать модули на C или C++ для расширения интерпретатора Python новыми модулями. Эти модули могут определять не только новые функции, но и новые типы объектов и их методы. Также в документе описано, как встроить интерпретатор Python в другое приложение, используя его как язык расширений. Наконец, показано, как компилировать и линкуть модули расширений, чтобы их можно было динамически загрузить (во время выполнения) в интерпретатор, если операционная система поддерживает эту функцию.
Данный документ предполагает базовые знания Python. Для неофициального введения в язык, см. Руководство по Python. Справочник по языку Python дает более формальное определение языка. Стандартная библиотека Python документирует существующие типы объектов, функции и модули (как встроенные, так и написанные на Python), которые придают языку широкий спектр применения.
Для подробного описания всего API Python/C см. отдельный Справочник по API Python/C.
Рекомендуемые сторонние инструменты
Это руководство охватывает только базовые инструменты для создания расширений, предоставляемые в рамках этой версии CPython. Сторонние инструменты, такие как Cython, cffi, SWIG и Numba, предлагают как более простые, так и более сложные подходы к созданию расширений на C и C++ для Python.
См. также
- Руководство пользователя по пакетированию Python: Бинарные расширения
-
Руководство пользователя по пакетированию Python не только охватывает несколько доступных инструментов, которые упрощают создание бинарных расширений, но также обсуждает различные причины, по которым создание модуля расширения может быть желательным.
Создание расширений без сторонних инструментов
Этот раздел руководства посвящен созданию расширений на C и C++ без помощи сторонних инструментов. Он предназначен прежде всего для разработчиков таких инструментов, а не является рекомендуемым способом создания собственных расширений C.
-
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–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.10/extending/index.html