»°ËµPython£¨Áù£©Ð¡°×µÄʤÀû
“¹þ¹þ£¡ÖªµÀÎÒ²Ù×÷Ö®ÍõС°×µÄÀ÷º¦ÁË°É£¡”
ÿµ±ÖÜÁùÍíÉÏ£¬Ð¡°××ÜÊÇÒª¸úËÞÉáµÄµÜÐÖÌô¼¸¾ÖħÊÞ¡£Æ¾½è×Å·çɧµÄ×ßλºÍâ«ËöµÄÒâʶ£¬Ð¡°××ÜÊÇЦµÀ×îºó¡£Õâ²»£¬Ð¡°×ÓÖÒ»´ÎÈ¡µÃÁËÒÔÒ»µÐ¶þµÄʤÀû¡£
“Ö÷ÒªÊǶàÏß²Ù×÷£¡”ÕâÊÇС°×¶Ô×Ô¼ºÊ¤ÀûµÄ×ܽᡣ
½ñÌìÎÒÃǾÍҪѧϰ¶àỊ̈߳¬¿´¿´Ð¡°×ÊÇÔõÑùʤÀûµÄ¡£
Ê×ÏÈÎÒÃÇÒª³ÎÇåµÄÊÇPythonµÄ¶àÏ̲߳¢²»ÊÇÀûÓÃϵͳ±¾ÉíµÄ¶àÏ̻߳úÖÆ£¬¶øÊÇ»ùÓÚPython½âÊÍÆ÷£¬Êµ¼ÊÔÚϵͳ¿´À´»¹ÊÇÒ»¸öÏ̡߳£ÔÚPythonÖУ¬´æÔÚÒ»¸öGlobal Interpreter Lock(GIL)£¬¼´È«¾Ö½âÊÍÆ÷Ëø£¬ËüµÄ×÷ÓÃÔÚÓÚÈÃͬһʱ¿ÌÖ»ÄÜÓÐÒ»¸öÏ̶߳ÔÓÚpython¶ÔÏó½øÐвÙ×÷¡£ËùÒÔPythonµÄ¶àÏß³ÌÎÞ·¨³ä·ÖÀûÓöàºËCPU£¬ÉõÖÁµ¥ºËCPU£¬Õâ¿ÉÒÔ˵ÊǽâÊÍÓïÑÔµÄͨ²¡¡£ÓÐʱ¿ÉÒÔͨ¹ý´´½¨¶à¸ö½ø³Ì£¨¶ø²»ÊÇỊ̈߳©£¬»òÕßʹÓÃJython°æ±¾À´½â¾ö¡£
¶àÏ̴߳øÀ´µÄȱµã£º1¡¢´úÂë±àдÄѶȼӴ󣬶àÏß³ÌÖ®¼äµÄÇÀÕ¼ÈÝÒײúÉú´íÎ󣬳öÏÖÒì³££»2¡¢Ïß³ÌÖ®¼äµÄÇл»Í¬Ñù»á¼Ó´óCPUºÍÄÚ´æµÄ¸ºµ£¡£
ÎÞÂÛÈçºÎ£¬¶àÏ̻߳¹ÊÇÖµµÃһѧµÄ£¬ÒòΪËüÓÐÒ»¸ö²»¿ÉºöÊÓµÄÓŵ㣺ִÐÐËٶȿ죬ÇмDz»ÄÜÀÄÓ᣶àÏß³ÌÖ÷ÒªÓ¦ÓÃÔÚI/OÃܼ¯Ð͵ijÌÐòÖУ¬ÒòΪÔÚÊäÈëÊä³öº¯Êý»á¸ü¶àµØµ÷ÓÃÄÚ½¨µÄC¼¶´úÂ룬¶ø²»ÊÇPython¼¶´úÂë¡£
ÎÒÃÇҪѧϰµÄÄ£¿éÊÇthreading£¬¶ø²»ÊÇthread£¬ÒòΪthreading¸üΪ¸ß¼¶¡£ÍƼöʹÓü̳Ðthreading.ThreadÀàÀ´´´½¨Ï̡߳£
hello world Ḭ̈߳棺
import threading
class WorkerThread(threading.Thread): #¼Ì³Ð×ÔThread
def __init__(self):
threading.Thread.__init__(self) #¼Ì³ÐThread¹¹Ô캯Êý
def run(self): #ÖØдrun()º¯Êý
print("hello world!")
if __name__=="__main__":
myThread=WorkerThread() #´´½¨¶ÔÏó
myThread.start() #start()·½·¨»á×Ô¶¯ÔËÐÐrun()
µ÷ÓÃstart()·½·¨ºó£¬Ï߳̾ͻá×Ô¶¯ÔËÐУ¬Á¬Ðø´´½¨¶à¸ö¶ÔÏó¾Í»á±ä³É¶àÏ̡߳£
ÉÏÎÄÌáµ½£¬¶àÏ̵߳ÄÒ»¸öȱµãÊǶԹ²ÏíµÄÊý¾ÝÇÀÕ¼Ôì³É³ÌÐò´íÎó¡£PythonÌṩÁ˺ܶàÏß³Ìͬ²½ÔÓÈçʱ¼ä£¬ËøµÈ¡£“µ±ÕâЩѡÏî´æÔÚʱ£¬×î¼Ñʵ¼ùÊÇת¶ø¹Ø×¢ÓÚʹÓöÓÁС£Ïà±È½Ï¶øÑÔ£¬¶ÓÁиüÈÝÒ×´¦Àí£¬²¢ÇÒ¿ÉÒÔʹµÃÏ̱߳à³Ì¸ü¼Ó°²È«£¬ÒòΪËüÃÇÄܹ»ÓÐЧµØ´«Ë͵¥¸öÏ̶߳Ô×ÊÔ´µÄËùÓÐ
Ïà¹ØÎĵµ£º
½ñÌìÓöµ½ÁËÂé·³£º
ÓÃEclipse±àÒëpythonÏòsqliteÊý¾Ý¿â²åÈëÊý¾Ý×ÜÊÇÌáʾ±àÂëµÄÎÊÌ⣬ÎÒÉèÖÃÁËEclipseµÄworkspaceÓÃutf-8±àÂ뻹ÊDz»ÐÐ
µ«ÊÇÓÃEclipseдµÄ³ÌÐò±£´æÔÙÓÃIDLE´ò¿ªÈ´ÄܱàÒ룬Ææ¹ÖÁË
ÎÒ¿¼Âǵ½¿ÉÄÜÊÇÅäÖõÄÔÒò£¬ÕÒÕÒ±éÁËËùÓеÄÅäÖ㬶¼Ã»ÓÐÎÊÌ⣬°üÀ¨¹¤³ÌÎļþ
×îºóÎÒÓÃxvi32´ò¿ ......
ǰһƪÎÄÕÂдµÄÔÚAPACHE°²×°MOD_PYTHONµÄ¾¹ý,Æäʵͦ¼òµ¥,¾ÍÊÇ°æ±¾²»¼æÈݵÄÎÊÌâ.Õâ´ÎÎÒ´ó¸Å˵ϲ¿ÊðDJANGOµÄ¹ý³Ì.
ÏÈÐÞ¸ÄAPACHEÅäÖÃÎļþ,ʹÆä¼ÓÔØmod_pythonÄ£¿é
LoadModule python_module libexec/mod_python.so
ÔËÐÐÃüÁî²é¿´
bin/httpd -M¿ÉÒÔ¿´µ½
python_module (shared)
Syntax OK
˵Ã÷apacheÒѾ³É¹¦¼Ó ......
С°×¶ÔÉϽڿÎÀïµÄ“СÂéȸ”ÐËȤ°»È»£¬ÕûÌì¾ÍÔÚËÞÉáµ·¹Ä¡£Õâ²»£¬¼¸ÌìÏÂÀ´ËûÒѾ¹¥ÏÂÊ®¼¸¸öÍøÕ¾ÁË¡£
С²Ëȴϲ»¶Ò»¸öÈË×øÔÚµçÄÔÅԱߣ¬Öå×Åüͷ£¬ÐÀÉÍ×ÅÕâÒ»ÐÐÐÐ×Ô¼º¿´²»¶®µÄ´úÂë¡£“ÕâЩ×Ö·ûºÃ¹ÖÒìѽ£¡”С²ËÍá×ÅÍ·£¬“ËüΪɶ½ÐÕýÔò±í´ïʽÄØ£¿”
°Ù¶Èһϣ¬ÖÕÓÚÖªµÀ¡£Ð¡² ......
µ±Ö´ÐÐimport
moduleʱ£¬½âÊÍÆ÷»á¸ù¾ÝÏÂÃæµÄËÑË÷·¾¶£¬ËÑË÷module1.pyÎļþ¡£
1) µ±Ç°¹¤×÷Ŀ¼
2) PYTHONPATHÖеÄĿ¼
3) Python°²×°Ä¿Â¼
(/usr/local/lib/python)
ÊÂʵÉÏ£¬Ä£¿éËÑË÷ÊÇÔÚ±£´æÔÚsys.pathÕâ¸öÈ«¾Ö±äÁ¿ÖеÄĿ¼ÁбíÖнøÐÐËÑË÷¡£
sys.path»áÔÚ½âÊÍÆ÷¿ªÊ¼Ö´ÐÐʱ±»³õʼ»¯³É°üº¬£º
1)µ±Ç°¹¤×÷Ŀ¼
2) PYT ......