Cython- это оптимизирующий статический компилятор как для языка программирования Python, так и для расширенного языка программирования Cython (на основе Pyrex). Это делает написание расширений C для Python таким же простым, как и сам Python.
Cython объединяет возможности Python и C, позволяя
- писать код Python, который в любой момент выполнять обратный вызов из и в код C или C ++.
- легко настроить читаемый код Python на простую производительность C, добавив объявления статических типов, также в синтаксисе Python.
- использовать комбинированную отладку на уровне исходного кода, чтобы найти ошибки в коде Python, Cython и C.
- эффективно взаимодействовать с большими наборами данных, например с использованием многомерных массивов NumPy.
- быстро создавать свои приложения в большой, зрелой и широко используемой экосистеме CPython.
- встроенная интеграция с существующим кодом и данными из устаревших, низкоуровневых или высокопроизводительных библиотек и приложений.
Язык Cython - это надмножество языка Python, которое дополнительно поддерживает вызов функций C и объявление типов C для переменных и атрибутов классов. Это позволяет компилятору генерировать очень эффективный код C из кода Cython. Код C генерируется один раз, а затем компилируется со всеми основными компиляторами C / C ++ в CPython 2.6, 2.7 (2.4+ с Cython 0.20.x), а также в 3.3 и всех более поздних версиях. Мы регулярно запускаем интеграционные тесты для всех поддерживаемых версий CPython и их последних веток, находящихся в разработке, чтобы убедиться, что сгенерированный код остается широко совместимым и хорошо адаптированным для каждой версии. Поддержка PyPy находится в стадии разработки (с обеих сторон) и считается наиболее полезной, начиная с Cython 0.17. Здесь всегда рекомендуется последняя версия PyPy.
Все это делает Cython идеальным языком для упаковки внешних библиотек C, встраивания CPython в существующие приложения и для быстрых модулей C, которые ускоряют выполнение кода Python.
Документация
- Документация Cython
- Cython Wiki
- Cython FAQ (и старые FAQ по Pyrex)
Внешние ресурсы:
- Видео Cython на PythonLinks и pyvideo.org
- Сообщения в блоге Стефана о Cython и о том, что нового в выпусках Cython.
- Cython - Руководство для программистов Python, книга Курта В. Смита, O'Reilly 2015
- Cython: лучшее из обоих миров, статья Стефана Бенеля, Роберта Брэдшоу и др., IEEE 2011
- Материалы SciPy 2009 (pdf): Cython Tutorial; Быстрые численные вычисления с Cython
Использование
Todo