Memperluas dan Menggabungkan Interpreter Python¶
Dokumen ini menjelaskan cara menulis modul dalam C atau C++ untuk memperluas interpreter Python dengan modul baru. Modul-modul itu tidak hanya dapat mendefinisikan fungsi baru tetapi juga jenis objek baru dan metode mereka. Dokumen ini juga menjelaskan cara menanamkan interpreter Python di aplikasi lain, untuk digunakan sebagai ekstensi bahasa. Akhirnya, ini menunjukkan bagaimana mengkompilasi dan menautkan modul ekstensi sehingga mereka dapat dimuat secara dinamis (pada saat run time) ke dalam interpreter, jika sistem operasi yang mendasarinya mendukung fitur ini.
Dokumen ini mengasumsikan pengetahuan dasar tentang Python. Untuk pengantar informal ke bahasa, lihat Tutorial Python. Referensi Bahasa Python memberikan definisi bahasa yang lebih formal. Pustaka Standar Python mendokumentasikan jenis objek, fungsi, dan modul yang ada (baik bawaan dan ditulis dengan Python) yang memberikan rentang penggunaan aplikasi yang luas terhadap bahasa tersebut.
Untuk deskripsi terperinci dari keseluruhan API Python/C, lihat bagian terpisah Panduan Referensi Python/API C.
Alat pihak ketiga yang direkomendasikan¶
Panduan ini hanya mencakup alat dasar untuk membuat ekstensi yang disediakan sebagai bagian dari versi CPython ini. Alat pihak ketiga seperti Cython, cffi, SWIG dan Numba menawarkan pendekatan yang lebih sederhana dan lebih canggih untuk membuat ekstensi C dan C++ untuk Python.
Lihat juga
- Python Packaging User Guide: Binary Extensions
Panduan Pengguna Pengemasan Python tidak hanya mencakup beberapa alat yang tersedia yang menyederhanakan pembuatan ekstensi biner, tetapi juga membahas berbagai alasan mengapa membuat modul ekstensi mungkin diinginkan di awal.
Membuat ekstensi tanpa alat pihak ketiga¶
Bagian panduan ini mencakup pembuatan ekstensi C dan C++ tanpa bantuan dari alat pihak ketiga. Ini dimaksudkan terutama untuk pembuat alat-alat itu, daripada menjadi cara yang disarankan untuk membuat ekstensi C Anda sendiri.
- 1. Extending Python with C or C++
- 1.1. Contoh Sederhana
- 1.2. Intermezzo: Errors and Exceptions
- 1.3. Kembali ke Contoh
- 1.4. The Module's Method Table and Initialization Function
- 1.5. Compilation and Linkage
- 1.6. Calling Python Functions from C
- 1.7. Extracting Parameters in Extension Functions
- 1.8. Keyword Parameters for Extension Functions
- 1.9. Building Arbitrary Values
- 1.10. Reference Counts
- 1.11. Writing Extensions in C++
- 1.12. Providing a C API for an Extension Module
- 2. Mendefinisikan Tipe Ekstensi: Tutorial
- 3. Defining Extension Types: Assorted Topics
- 4. Building C and C++ Extensions
- 5. Building C and C++ Extensions on Windows
Menggabungkan runtime CPython di aplikasi yang lebih besar¶
Terkadang, alih-alih membuat ekstensi yang berjalan di dalam interpreter Python sebagai aplikasi utama, lebih baik menanamkan runtime CPython di dalam aplikasi yang lebih besar. Bagian ini mencakup beberapa detail yang terlibat dalam melakukan hal itu dengan sukses.