Cython #1

by 18:39 0 comments

Cython ဆိုတာ Static Compiler တစ္ခုပါပဲ။ Python အတြက္ C extension ေတြေရးတဲ့အခါ Python Syntax ကဲ့သို့လြယ္ကူေအာင္လုပ္ေပးထားတာပါ။ Python နဲ့ C code ရဲ့ speed ကိုယွဥ္လုိ့ C ကအစ၁၀၀ပိုျမန္တယ္ဆို Cython ကအစ ၈၀ Python ထက္ပိုျမန္ပါတယ္။
Cython ကိုေလ့လာဖို့ Python ကိုက်ြမ္းက်င္ျပီးသားမပာုတ္ရင္ေတာင္ ေရးနိုင္ဖတ္နိုင္မိမိဘာသာခ်ေရးနိုင္တဲ့အေျခအေနျဖစ္ေနဖို့လိုျပီး
C Language ကိုလဲ fundamental ပုိင္းကိုနားလည္ျပီးသားျဖစ္ေနသင့္ပါတယ္။
Cython ကို unix သမားေတြအေနနဲ့ pip နဲ့သြင္းနိုင္ပါတယ္။
 sudo pip install cython 
Windows မသားေတြကေတာ့ Cython Offical ကသြင္းနည္းသြားျကည့္ျပီးသြင္းနိုင္ပါတယ္။

လုပ္စရာရွိတာလုပ္ျပီးျပီဆို Hello World ေလးစေရးျကည့္ရေအာင္..

 print "Hello World"  

အဲ့ေကာင္ေလးကို helloworld.pyx ဆိုျပီး save လုပ္လိုက္ပါ။
ေနာက္ setup.py ဆိုတဲ့ file တစ္ခုတည္ေဆာက္ရပါမယ္။

 from distutils.core import setup  
 from Cython.Build import cythonize  
 setup(  
    ext_modules = cythonize("helloworld.pyx")  
 )  

 ဒါဆို Cython file တစ္ခုတည္ေဆာက္ဖို့အတြက္လိုအပ္တာအကုန္ရွိပါျပီ။
ေအာက္က command နဲ့ Cython ဖိုင္ထုတ္လို့ရပါတယ္။

 python setup.py build_ext --inplace  

သူက build ဆိုတဲ့ directory ရယ္ .c extension နဲ့ .so extension နဲ့ဖိုင္ ၂ခု directory တစ္ခုတည္ေဆာက္လိုက္ပါလိမ့္မယ္။
Windows မွာဆိုရင္ေတာ့ .so အစား .pyd ဆိုတ့ဲဖိုင္ရွိေနပါလိမ့္မယ္။
အခုကြ်န္ေတာ္တို့ အဲ့ဒီ Cython Extension ကိုသံုးျပပါမယ္။
Python Interpreter ေခါ္လိုက္ပါ။ ေနာက္ import filename.so ဆိုျပီး import လုပ္လိုက္ရင္ Hello World ဆိုတာေလးထြက္လာပါလိမ့္မယ္။

အကယ္လို့ မိမိ module က special build setup ေတြဘာညာေတြမလိုရင္ pyximport ဆိုတဲ့ module နဲ့ .pyx ဖိုင္ေတြကို import ကေနတန္းေခါ္နိုင္ပါတယ္။

 >>> import pyximport; pyximport.install()  
 >>> import helloworld  
 Hello World  
To Be Continue

PyLab (c) 2016

Pylab

Developer

Keep calm and love Python

0 comments:

Post a Comment