Anda tidak perlu memperpanjang Python (yang tidak sepele, btw), tetapi dapat menggunakan antarmuka fungsi asing seperti ctypes .
Saya ingin menjalankan fungsi C atau executable tersebut dengan python. Apakah itu mungkin.
Ya, Anda bisa menulis kode C yang bisa diimpor ke Python sebagai modul. Python memanggil modul ekstensi ini . Anda dapat memanggilnya langsung dari Python, contoh dari dokumentasi:
Kode Python
import example
result = example.do_something()
Kode C
static PyObject * example(PyObject *self)
{
// do something
return Py_BuildValue("i", result);
}
Jika saya ingin kode C menjadi pustaka, yang berarti saya menggunakannya dengan #include dan tautan *.o kemungkinan dengan python, bagaimana melakukannya atau apakah itu mungkin.
Anda membuatnya sebagai pustaka bersama *.dll atau *.jadi Anda juga dapat menyelidiki menggunakan distutils untuk mendistribusikan modul Anda.
Jika saya menulis kode C menjadi dapat dieksekusi, yang artinya menjadi perintah, dapatkah saya menjalankannya dengan python secara langsung?
Jika Anda menulis *.exe maka Anda melakukan sebaliknya (memanggil Python dari C). Metode yang Anda pilih (exe vs pustaka bersama) bergantung pada apakah Anda menginginkan "program C dengan beberapa Python" atau "program Python dengan beberapa C" .
Juga, saya mendengar bahwa kode python dapat dikompilasi, apakah itu berarti kita dapat menjalankan kode tersebut tanpa file sumber? Apakah file keluaran file biner? Apakah ini meningkatkan performa?
Python membaca *.py file dan kompilasi ke *.pyc bytecode file saat Anda menjalankannya. Bytecode kemudian dijalankan di mesin virtual Python. Ini berarti "mengeksekusi file yang sama lebih cepat untuk kedua kalinya karena kompilasi ulang dari sumber ke bytecode dapat dihindari." (dari glosarium Python) Jadi, jika Anda belum mengedit *.py Anda file, itu akan menjalankan *.pyc . Anda dapat mendistribusikan *.pyc file tanpa *.py file, namun tidak dienkripsi dan dapat direkayasa ulang.