ก่อนอื่นให้ทำการติดตั้ง GCC compiler ให้เรียบร้อย พร้อมตั้งค่า path ก่อนใช้งาน
สำหรับผู้ใช้ Debian/Ubuntu
หลังทำการติดตั้ง GCC compiler แล้ว ให้ทำการติดตั้ง
สำหรับ Python 2
sudo apt-get install python-dev
สำหรับ Python 3
sudo apt-get install python-dev
แล้วสั่ง
สำหรับ Python 2
python-config --ldflags
สำหรับ Python 3
python3-config --ldflags
โค้ดตัวอย่างการฝังตัวภาษาไพทอนลงโปรแกรมภาษาซี
โค้ด pytoc.c
[c]#include <Python.h>
int main(int argc, char *argv[])
{
Py_SetProgramName((wchar_t *)argv[0]); /* optional but recommended */
Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print('Today is', ctime(time()))\n"); /* python code PyRun_SimpleString(char* our_python_code_to_run) */
Py_Finalize();
return 0;
}[/c]
อธิบายคำสั่ง
- Python.h เป็นไฟล์หลักสำหรับดึงไฟล์ภาษาไพทอนเข้ามาฝังตัวในโค้ดภาษาซี
- เตรียมพร้อม Python environment จากคำสั่ง Py_Initialize()
- ทำลาย Python environment จากคำสั่ง Py_Finalize()
การคอมไพล์โค้ด pytoc.c
สำหรับ Windows
gcc pytoc.c -I C:\PythonXY\include -LC:/PythonXY/libs -lpythonXY -o pytoc.exe
XY คือ เวชั่นของ CPython ที่ใช้
ตัวอย่างเช่น ใช้ Python 3.4
gcc pytoc.c -I C:\Python34\include -LC:/Python34/libs -lpython34 -o pytoc.exe
ลองโค้ดที่คอมไพล์ออกมาโดยใช้คำสั่ง
pytoc.exe
ผลลัพธ์
Today is Fri Nov 27 06:06:26 2015
สำหรับผู้ใช้งาน Linux
สามารถคอมไพล์ได้ด้วยคำสั่ง
gcc -L/usr/lib/pythonX.Y/config -lpthread -ldl -lutil -lm -lpythonX.Y -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -o pytoc.c
X.Y คือ เวชั่นของ CPython ที่ใช้
ตัวอย่างเช่น ใช้ Python 3.4
gcc -L/usr/lib/python3.4/config -lpthread -ldl -lutil -lm -lpython3.4 -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -o pytoc.c
ลองโค้ดที่คอมไพล์โดยใช้คำสั่ง
./pytoc
ผลลัพธ์
Today is Fri Nov 27 06:06:26 2015
อ่านเอกสารเพิ่มเติมได้ที่ https://docs.python.org/3/extending/
ติดตามบทความทต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)