Расширение и встраивание интерпретатора Python¶
Этот документ описывает, как писать модули на C или C++ для расширения интерпретатора Python новыми модулями. Эти модули могут определять не только новые функции, но и новые типы объектов и их методы. Документ также описывает, как встроить интерпретатор Python в другое приложение для использования в качестве языка расширения. Наконец, в документе показано, как компилировать и компоновать модули расширения, чтобы они могли загружаться в интерпретатор динамически (во время выполнения), если базовая операционная система поддерживает эту возможность.
Этот документ предполагает базовые знания о Python. Для неформального знакомства с языком смотрите Учебник по Python. Справочник по языку Python дает более формальное определение языка. Стандартная библиотека Python документирует существующие типы объектов, функции и модули (как встроенные, так и написанные на Python), которые придают языку широкий диапазон применения.
Подробное описание всего Python/C API приведено в отдельном разделе Справочное руководство по API Python/C.
Рекомендуемые инструменты сторонних производителей¶
В данном руководстве рассматриваются только основные инструменты для создания расширений, поставляемые в составе данной версии CPython. Сторонние инструменты, такие как Cython, cffi, SWIG и Numba, предлагают как более простые, так и более сложные подходы к созданию расширений на C и C++ для Python.
См.также
- Python Packaging User Guide: Binary Extensions
Руководство пользователя Python Packaging не только рассказывает о нескольких доступных инструментах, упрощающих создание бинарных расширений, но и обсуждает различные причины, по которым создание модуля расширения может быть желательным в первую очередь.
Создание расширений без использования сторонних инструментов¶
В этом разделе руководства рассказывается о создании расширений на 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 в более крупное приложение. В этом разделе рассматриваются некоторые детали, необходимые для успешного выполнения этой задачи.