Cython — мова програмування, котра є розширеним варіантом мови Python, націленим на спрощення інтеграції з кодом на мові C. Синтаксис Cython дозволяє створювати розширення на C для проектів на мові Python так само просто, як писати код на Python. Cython розширює можливості Python засобами для прямого виклику функцій на C, підтримує визначення змінних з типами мови C і дозволяє компілювати підсумковий код мовою Cython в подання на C, яке потім збирається штатним системним компілятором.
Cython | |
---|---|
Дата появи | 28 липня 2007 |
Розробник | Robert Bradshaw, Stefan Behnel та інші |
Останній реліз | 0.20 (18 січня 2014 ) |
Під впливом від | |
Мова реалізації | Python[1] |
Операційна система | Linux, UNIX-подібні операційні системи, Windows[2] і macOS[2] |
Ліцензія | Apache License |
Репозиторій вихідного коду | github.com/cython/cython |
Вебсайт | cython.org |
Опис
Cython це компільована мова програмування, яка генерує модулі розширення CPython. Ці модулі можуть бути завантажені і використані як звичайний код на Python використовуючи оператор import. Cython написано на Python і він працює на Windows, Linux, і Mac OS X, створюючи вихідні файли, сумісні з CPython 2.4 – 3.4.
Він працює, як стандартний модуль Python. Тим не менш, його поведінка відрізняється від стандартних модулів написаних на Python, оскільки він транслюється в С. В результаті код працює швидко, оскільки для виконання практично всіх операцій він використовує інтерпретатор CPython та його стандартні бібліотеки. Вибраний механізм значно зекономив час на розробку Cython, але зробив основні модулі залежними від Python та його стандартних бібліотек.
Більша частина коду написана на C, за винятком невеликої заглушки-завантажувача яку написано на звичайному Python, оскільки спроби переписати її на чистому С викликають проблеми через деякі не задокументовані фрагменти в коді інтерпретатора CPython. Тим не менш, це не є серйозною проблемою, оскільки, як сказано вище Cython залежить від інтерпретатора Python.
Приклад програми
Приклад програми hello world на Cython виглядає складніше ніж у більшості інших мов, через те, що він взаємодіє з Python C API та distutils
. Принаймні, три файли необхідні для базового проекту:
setup.py
який викликає процес збиранняdistutils
який генерує модуль розширення- Головна програма на python для завантаження модуля розширення
- Файли з кодом на Cython
Наступний лістинг демонструє процес побудови та запуску:
# hello.pyx - модуль Python, цей код буде трансльовано в C через Cython. def say_hello(): print "Hello World!"
# launch.py - Python stub loader, завантажує модуль який було створено в Cython. # Цей код завжди інтерпретується як звичайний Python. # Він не компілюється в C. import hello hello.say_hello()
# setup.py - не обов’язово, якщо код не буде розповсюджуватись from distutils.core import setup from Cython.Build import cythonize setup(name = 'Hello world app', ext_modules = cythonize("*.pyx"))
Дані команди збирають та запускають програму:
$ python setup.py build_ext --inplace $ python launch.py
Cython особливо популярний серед наукових користувачів Python, де він має "ідеальну аудиторію" за словами творця Python Гвідо ван Россума.
Домен Cython не обмежується лише числовими обчисленнями. Наприклад, набір інструментів lxml XML написаний переважно на Cython, і, як і його попередник Pyrex, Cython використовується для забезпечення прив’язок Python для багатьох бібліотек C та C ++, таких як бібліотека обміну повідомленнями ZeroMQ.
Cython також можна використовувати для розробки паралельних програм для багатоядерних процесорних машин; ця функція використовує бібліотеку OpenMP.
Посилання
- Офіційний сайт
- The cython Open Source Project on Open Hub: Languages Page — 2006.
- https://docs.cython.org/en/latest/src/quickstart/install.html
- Guido Van Rossum (21 березня 2011). (Message to the electronic mailing-list
python-dev
). Архів оригіналу за 20 березня 2012. Процитовано 5 травня 2011. - . Архів оригіналу за 2 серпня 2019. Процитовано 14 вересня 2021.
- Zed Shaw (2017). . Addison-Wesley Professional. ISBN . Архів оригіналу за 6 вересня 2021. Процитовано 14 вересня 2021.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cython mova programuvannya kotra ye rozshirenim variantom movi Python nacilenim na sproshennya integraciyi z kodom na movi C Sintaksis Cython dozvolyaye stvoryuvati rozshirennya na C dlya proektiv na movi Python tak samo prosto yak pisati kod na Python Cython rozshiryuye mozhlivosti Python zasobami dlya pryamogo vikliku funkcij na C pidtrimuye viznachennya zminnih z tipami movi C i dozvolyaye kompilyuvati pidsumkovij kod movoyu Cython v podannya na C yake potim zbirayetsya shtatnim sistemnim kompilyatorom CythonData poyavi28 lipnya 2007RozrobnikRobert Bradshaw Stefan Behnel ta inshiOstannij reliz0 20 18 sichnya 2014 10 rokiv tomu 2014 01 18 Pid vplivom vidMova realizaciyiPython 1 Operacijna sistemaLinux UNIX podibni operacijni sistemi Windows 2 i macOS 2 LicenziyaApache LicenseRepozitorij vihidnogo kodugithub com cython cythonVebsajtcython orgOpisCython ce kompilovana mova programuvannya yaka generuye moduli rozshirennya CPython Ci moduli mozhut buti zavantazheni i vikoristani yak zvichajnij kod na Python vikoristovuyuchi operator import Cython napisano na Python i vin pracyuye na Windows Linux i Mac OS X stvoryuyuchi vihidni fajli sumisni z CPython 2 4 3 4 Vin pracyuye yak standartnij modul Python Tim ne mensh jogo povedinka vidriznyayetsya vid standartnih moduliv napisanih na Python oskilki vin translyuyetsya v S V rezultati kod pracyuye shvidko oskilki dlya vikonannya praktichno vsih operacij vin vikoristovuye interpretator CPython ta jogo standartni biblioteki Vibranij mehanizm znachno zekonomiv chas na rozrobku Cython ale zrobiv osnovni moduli zalezhnimi vid Python ta jogo standartnih bibliotek Bilsha chastina kodu napisana na C za vinyatkom nevelikoyi zaglushki zavantazhuvacha yaku napisano na zvichajnomu Python oskilki sprobi perepisati yiyi na chistomu S viklikayut problemi cherez deyaki ne zadokumentovani fragmenti v kodi interpretatora CPython Tim ne mensh ce ne ye serjoznoyu problemoyu oskilki yak skazano vishe Cython zalezhit vid interpretatora Python Priklad programiPriklad programi hello world na Cython viglyadaye skladnishe nizh u bilshosti inshih mov cherez te sho vin vzayemodiye z Python C API ta distutils Prinajmni tri fajli neobhidni dlya bazovogo proektu setup py yakij viklikaye proces zbirannya distutils yakij generuye modul rozshirennya Golovna programa na python dlya zavantazhennya modulya rozshirennya Fajli z kodom na Cython Nastupnij listing demonstruye proces pobudovi ta zapusku hello pyx modul Python cej kod bude translovano v C cherez Cython def say hello print Hello World launch py Python stub loader zavantazhuye modul yakij bulo stvoreno v Cython Cej kod zavzhdi interpretuyetsya yak zvichajnij Python Vin ne kompilyuyetsya v C import hello hello say hello setup py ne obov yazovo yaksho kod ne bude rozpovsyudzhuvatis from distutils core import setup from Cython Build import cythonize setup name Hello world app ext modules cythonize pyx Dani komandi zbirayut ta zapuskayut programu python setup py build ext inplace python launch py Cython osoblivo populyarnij sered naukovih koristuvachiv Python de vin maye idealnu auditoriyu za slovami tvorcya Python Gvido van Rossuma Domen Cython ne obmezhuyetsya lishe chislovimi obchislennyami Napriklad nabir instrumentiv lxml XML napisanij perevazhno na Cython i yak i jogo poperednik Pyrex Cython vikoristovuyetsya dlya zabezpechennya priv yazok Python dlya bagatoh bibliotek C ta C takih yak biblioteka obminu povidomlennyami ZeroMQ Cython takozh mozhna vikoristovuvati dlya rozrobki paralelnih program dlya bagatoyadernih procesornih mashin cya funkciya vikoristovuye biblioteku OpenMP PosilannyaOficijnij sajt The cython Open Source Project on Open Hub Languages Page 2006 d Track Q124688 https docs cython org en latest src quickstart install html Guido Van Rossum 21 bereznya 2011 Message to the electronic mailing list python dev Arhiv originalu za 20 bereznya 2012 Procitovano 5 travnya 2011 Arhiv originalu za 2 serpnya 2019 Procitovano 14 veresnya 2021 Zed Shaw 2017 Addison Wesley Professional ISBN 978 0134692883 Arhiv originalu za 6 veresnya 2021 Procitovano 14 veresnya 2021