Расширение и встраивание интерпретатора 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. Предоставление C API для модуля расширения
- 2. Определение типов расширений: Руководство
- 3. Определение типов расширений: Разнообразные темы
- 4. Построение C и C++ расширений
- 5. Построение C и C++ расширений в Windows
Встраивание среды выполнения CPython в более крупное приложение
Иногда вместо создания расширения, работающего внутри интерпретатора Python как основное приложение, желательно встроить среду выполнения CPython в более крупное приложение. Этот раздел описывает некоторые детали, необходимые для успешного выполнения этой задачи.
© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.9/extending/index.html