توسعه و تعبیه مفسر پایتون

این سند شرح می‌دهد که چگونه ماژول‌هایی به زبان C یا C++ بنویسید تا مفسر پایتون را با ماژول‌های جدید توسعه دهید. آن ماژول‌ها می‌توانند کارهایی را که کدهای پایتون انجام می‌دهند -- مانند تعریف توابع، انواع داده‌ی اشیاء و متدها -- انجام دهند، و همچنین با کتابخانه‌های بومی تعامل داشته باشند یا با اجتناب از سربار مفسر، کارایی بهتری به دست آورند. این سند همچنین نحوهی تعبیه‌سازی مفسر پایتون را در برنامه‌ای دیگر، برای استفاده به عنوان یک زبان افزونه، شرح می‌دهد. در نهایت، نشان می‌دهد که چگونه ماژول‌های توسعه‌ای را کامپایل و پیوند (link) دهید تا در صورت پشتیبانی سیستم‌عامل زیربنایی، بتوانند به صورت پویا (در زمان اجرا) در مفسر بارگذاری شوند.

این سند دانش پایه‌ای درباره C و Python را فرض می‌کند. برای مقدمه‌ی غیررسمی به Python، به راهنمای پایتون مراجعه کنید. مرجع زبان پایتون تعریفی رسمی‌تر از زبان ارائه می‌دهد. ارجاع توکارهای پایتون توابع و انواع شیء توکار را مستند می‌کند، و کتابخانه‌ی استاندارد پایتون ماژول‌ها (هر دو توکار و نوشته شده در Python) را که به زبان طیف وسیعی از کاربردها می‌دهند، مستند می‌کند.

برای شرح دقیق کل Python/C API، به راهنمای مرجع Python/C API جداگانه مراجعه کنید.

برای پشتیبانی از افزونه‌ها، API زبان C در پایتون (رابط برنامه‌نویسی کاربردی) مجموعه‌ای از توابع، ماکروها و متغیرها را تعریف می‌کند که دسترسی به بیشتر جنبه‌های سیستم زمان اجرای پایتون را فراهم می‌کنند. API پایتون با گنجاندن سرآیند "Python.h" در یک پرونده‌ی سورس C گنجانده می‌شود.

نکته

رابط افزونه‌ی C مختص CPython است و ماژول‌های توسعه‌ای روی سایر پیاده‌سازی‌های پایتون کار نمی‌کنند. در بسیاری از موارد، اجتناب از نوشتن افزونه‌های C و حفظ قابلیت حمل به سایر پیاده‌سازی‌ها امکان‌پذیر است. برای مثال، اگر مورد استفاده‌ی شما فراخوانی عملکردهای کتابخانه‌ی C یا فرایندهای سیستمی است، باید به‌جای نوشتن کد سفارشی C، استفاده از ماژول ctypes یا کتابخانه‌ی cffi را در نظر بگیرید. این ماژول‌ها به شما اجازه می‌دهند کدهای پایتون را برای ارتباط با کدهای C بنویسید و نسبت به نوشتن و کامپایل کردن یک ماژول توسعه‌ی C، قابلیت حمل بالاتری بین پیاده‌سازی‌های مختلف پایتون دارند.

آموزش API زبان C

این آموزش نحوه‌ی نوشتن یک ماژول ساده به زبان C یا C++ را با استفاده از API C پایتون شرح می‌دهد — یعنی با استفاده از ابزارهای پایه‌ای که به عنوان بخشی از این نسخه از CPython ارائه شده‌اند.

  1. نخستین ماژول توسعه‌ی C API شما

راهنماهایی برای مباحث متوسط

این بخش از راهنما به ایجاد توسعه‌های C و C++ بدون کمک گرفتن از ابزارهای شخص ثالث می‌پردازد. این بخش در درجه‌ی اول برای سازندگان آن ابزارها در نظر گرفته شده است، نه اینکه روش توصیه‌شده‌ای برای ایجاد توسعه‌های C خودتان باشد.

تعبیه ران‌تایم سی‌پایتون در برنامه‌ای بزرگ‌تر

گاهی، به‌جای ایجاد افزونه‌ای که درون مفسر پایتون به‌عنوان برنامه اصلی اجرا می‌شود، مطلوب است که ران‌تایم سی‌پایتون درون برنامه‌ای بزرگ‌تر تعبیه شود. این بخش برخی از جزئیات مربوط به انجام موفقیت‌آمیز این کار را در بر می‌گیرد.