Расширение и встраивание интерпретатора 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–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/extending/index.html