مرحبًا بك في سايثون!
Cython هو مترجم Python الذي يجعل كتابة ملحقات C لـ Python أمرًا سهلاً مثل Python نفسها. يعتمد Cython على Pyrex، ولكنه يدعم المزيد من الوظائف والتحسينات المتطورة.
يقوم Cython بترجمة كود Python إلى كود C/C++، ولكنه يدعم أيضًا استدعاء وظائف C والإعلان عن أنواع C على المتغيرات وسمات الفئة. يسمح هذا للمترجم بإنشاء كود C فعال للغاية من كود Cython.
وهذا يجعل Cython اللغة المثالية لتغليف مكتبات C الخارجية، ولوحدات C السريعة التي تعمل على تسريع تنفيذ كود Python.
- الموقع الرسمي: https://cython.org/
- التوثيق: https://docs.cython.org/
- مستودع جيثب: https://github.com/cython/cython
- ويكي: https://github.com/cython/cython/wiki
لدى Cython حوالي 30 مليون عملية تنزيل شهريًا على PyPI. يمكنك دعم مشروع Cython عبر Github Sponsors أو Tidelift.
تثبيت:
إذا كان لديك بالفعل مترجم C، فقط قم بتشغيل الأمر التالي:
نقطة تثبيت سايثون
وإلا، راجع صفحة التثبيت.
رخصة:
تم ترخيص برنامج بيركس الأصلي "خاليًا من القيود" (انظر أدناه). Cython نفسها مرخصة بموجب ترخيص Apache المسموح به.
راجع LICENSE.txt.
المساهمة:
هل تريد المساهمة في مشروع Cython؟ إليك بعض المساعدة لتبدأ.
الاختلافات عن مترجمي بايثون الآخرين
بدأت Cython كمشروع في أوائل العقد الأول من القرن الحادي والعشرين، وقد تجاوزت معظم المحاولات الأخرى لإنتاج مترجمات ثابتة للغة بايثون.
تشمل المشاريع المماثلة التي لها أهمية اليوم ما يلي:
- PyPy، تطبيق Python مع مترجم JIT.
- الايجابيات: تجميع JIT مع تحسينات وقت التشغيل، متوافق تمامًا مع اللغة، تكامل جيد مع كود C/C++ الخارجي
- السلبيات: وقت تشغيل غير CPython، استخدام كبير نسبيًا لموارد وقت التشغيل، توافق محدود مع امتدادات CPython، نتائج أداء غير واضحة
- Numba، وهو امتداد لـ Python يتميز بمترجم JIT لمجموعة فرعية من اللغة، استنادًا إلى البنية التحتية للمترجم LLVM (ربما الأكثر شهرة بمترجم
clang
C الخاص به). يستهدف في الغالب الكود الرقمي الذي يستخدم NumPy.- الايجابيات: تجميع JIT مع تحسينات وقت التشغيل
- السلبيات: دعم محدود للغة، وتبعية وقت تشغيل كبيرة نسبيًا (LLVM)، ونتائج أداء غير واضحة
- Pythran، وهو مترجم امتدادات Python-to-C++ ثابت لمجموعة فرعية من اللغة، يستهدف في الغالب الحساب الرقمي. يمكن استخدام Pythran (وربما يكون الأفضل) كواجهة خلفية إضافية لرمز NumPy في Cython.
- mypyc، وهو مترجم امتدادات Python-to-C ثابت، يعتمد على محلل Python الثابت mypy. مثل وضع Python النقي في Cython، يمكن لـ mypyc الاستفادة من التعليقات التوضيحية من نوع PEP-484 لتحسين التعليمات البرمجية للأنواع الثابتة.
- الإيجابيات: دعم جيد للغة والكتابة PEP-484، واستدلال جيد للنوع، ومكاسب معقولة في الأداء
- السلبيات: لا يوجد دعم للتحسينات والكتابة على المستوى المنخفض، وتفسير نوع بايثون برأيه، وانخفاض توافق بايثون والاستبطان بعد التجميع
- Nuitka، مترجم امتدادات Python-to-C الثابت.
- الإيجابيات: متوافق للغاية مع اللغة، مكاسب معقولة في الأداء، دعم لربط التطبيقات الثابتة (على غرار cython_freeze ولكن مع القدرة على تجميع تبعيات المكتبة في ملف قابل للتنفيذ قائم بذاته)
- السلبيات: لا يوجد دعم للتحسينات والكتابة ذات المستوى المنخفض
بالمقارنة مع ما سبق، يوفر Cython
- دعم سريع وفعال ومتوافق للغاية لجميع ميزات لغة Python تقريبًا، بما في ذلك الميزات الديناميكية والاستبطان
- توافق كامل في وقت التشغيل مع جميع الإصدارات التي لا تزال قيد الاستخدام والإصدارات المستقبلية من CPython
- "إنشاء مرة واحدة، وتجميع في كل مكان" إنشاء كود C الذي يسمح بنتائج واختبار الأداء القابل للتكرار
- يقوم C بتجميع تكييف الوقت مع النظام الأساسي المستهدف وإصدار Python
- دعم تطبيقات C-API الأخرى، بما في ذلك PyPy وPyston
- التكامل السلس مع كود C/C++
- دعم واسع للتحسين اليدوي والضبط وصولاً إلى المستوى C
- قاعدة مستخدمين كبيرة تضم آلاف المكتبات والحزم والأدوات
- ما يقرب من عقدين من إصلاح الأخطاء وتحسينات التعليمات البرمجية الثابتة
احصل على سجل المصدر الكامل:
لاحظ أن Cython كان يستخدم لشحن مستودع التحكم في الإصدار الكامل في توزيعه المصدر، ولكنه لم يعد يفعل ذلك بسبب قيود المساحة. للحصول على سجل المصدر الكامل من أرشيف المصدر الذي تم تنزيله، تأكد من تثبيت git، ثم انتقل إلى الدليل الأساسي لتوزيع مصدر Cython واكتب:
جعل الريبو
ما يلي من بيركس:
هذه نسخة تطويرية من Pyrex، وهي لغة لكتابة وحدات امتداد Python.
لمزيد من المعلومات، قم بإلقاء نظرة على:
- Doc/About.html للحصول على وصف للغة
- INSTALL.txt للحصول على تعليمات التثبيت
- USAGE.txt للحصول على تعليمات الاستخدام
- العروض التوضيحية لأمثلة الاستخدام
التعليقات والاقتراحات وتقارير الأخطاء وما إلى ذلك هي موضع ترحيب كبير!
حقوق الطبع والنشر: بيركس خالية من القيود. يجوز لك استخدام وإعادة توزيع وتعديل وتوزيع الإصدارات المعدلة.
يمكن العثور على أحدث إصدار من Pyrex هنا.
جريج إوينج، قسم علوم الكمبيوتر
جامعة كانتربري
كرايستشيرش، نيوزيلندا
مواطن من NewZealandCorp، وهي شركة فرعية مملوكة بالكامل لشركة USA Inc.