19 กันยายน 2558

Published 9/19/2558 by with 0 comment

รู้จักกับ Cython

Cython เป็นคอมไพเลอร์ตัวหนึ่งของภาษาไพทอน โดยสามารถคอมไพล์โค้ดภาษาไพทอนไปเป็นไฟล์โค้ดภาษาซีได้ ช่วยเพิ่มความเร็วของโค้ดไพทอน และนอกจากนั้น ยังสามารถใช้เป็นส่วนเสริมสำหรับเขียนโมดูลเพื่อเชื่อมระหว่างภาษาไพทอนกับภาษาซีได้อย่างสะดวกยิ่งขึ้น

คอมไพล์โค้ดไพทอนไปเป็นภาษาซีด้วย Cython


สามารถคอมไพล์ได้ด้วยคำสั่ง
cython ไฟล์.py

หากต้องการแนบ Python interpreter เพิ่มคำสั่ง --embed เข้าไป
cython --embed  ไฟล์.py

จะได้ไฟล์ ไฟล์.c ขึ้นมา เพื่อนำไปคอมไพล์อีกรอบหนึ่ง

ตัวอย่างเช่น
cython --embed -o num.c num.py

ใช้ Cython ช่วยสร้างโมดูลไพทอน


ตัวอย่างโมดูล “hello world”
ให้สร้างไฟล์ hello.pyx ขึ้นมา
ไฟล์ .pyx คือ อะไร ?
ไฟล์ .pyx เป็นไฟล์สำหรับให้ Cython ทำการคอมไพล์ไปเป็นภาษาซี เป็นไฟล์ช่วยขยายความสามารถให้กับไพทอน

โดยมีโค้ดดังนี้

[python]
def say_hello_to(name):
print("Hello %s!" % name)[/python]

ต่อไปสร้างไฟล์สำหรับใช้ติดตั้งโมดูล คือ ไฟล์ setup.py
โดยมีโค้ดดังนี้

[python]
from distutils.core import setup
from Cython.Build import cythonize

setup(
name = 'Hello world app',
ext_modules = cythonize("hello.pyx"),
)
[/python]

ติดตั้งด้วยคำสั่ง
python setup.py build_ext --inplace

ลองใช้งาน

[python]
from hello import say_hello_to
say_hello_to("Boy")[/python]

เอกสารการใช้งาน Cython ได้ที่ http://docs.cython.org/index.html
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

อ่านบทความอื่น ๆ ของ Cython ได้จาก https://python3.wannaphong.com/tag/cython

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)