توسعه و تعبیه مفسر پایتون¶
این سند شرح میدهد که چگونه ماژولهایی به زبان 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، قابلیت حمل بالاتری بین پیادهسازیهای مختلف پایتون دارند.
ابزارهای شخص ثالث توصیهشده¶
این سند تنها ابزارهای پایهای را برای ایجاد افزونههای ارائهشده به عنوان بخشی از این نسخهی سیپایتون پوشش میدهد. برخی از ابزارهای شخص ثالث رویکردهای سادهتر و پیشرفتهتری را برای ایجاد افزونههای C و C++ برای پایتون ارائه میدهند.
اگرچه این سند برای نویسندگان افزونهها در نظر گرفته شده است، اما باید برای نویسندگان چنین ابزارهایی نیز مفید باشد. برای مثال، ماژول آموزشی میتواند بهعنوان یک آزمون ساده برای یک ابزار ساخت یا نمونه خروجی مورد انتظار یک تولیدگر کد عمل کند.
آموزش API زبان C¶
این آموزش نحوهی نوشتن یک ماژول ساده به زبان C یا C++ را با استفاده از API C پایتون شرح میدهد — یعنی با استفاده از ابزارهای پایهای که به عنوان بخشی از این نسخه از CPython ارائه شدهاند.
راهنماهایی برای مباحث متوسط¶
این بخش از راهنما به ایجاد توسعههای C و C++ بدون کمک گرفتن از ابزارهای شخص ثالث میپردازد. این بخش در درجهی اول برای سازندگان آن ابزارها در نظر گرفته شده است، نه اینکه روش توصیهشدهای برای ایجاد توسعههای C خودتان باشد.
تعبیه رانتایم سیپایتون در برنامهای بزرگتر¶
گاهی، بهجای ایجاد افزونهای که درون مفسر پایتون بهعنوان برنامه اصلی اجرا میشود، مطلوب است که رانتایم سیپایتون درون برنامهای بزرگتر تعبیه شود. این بخش برخی از جزئیات مربوط به انجام موفقیتآمیز این کار را در بر میگیرد.