รายการ

python library

Open source python library

Network

  • Twisted is an event-driven networking engine สำหรับ python network library มี option ให้เลือกใช้งานมากมาย เช่น การเขียนข้อมูลส่งรับบน  TCP protocol, SSH,SMTP,DNS,HTTP,Instant messaging และอีกมากมาย ที่  http://twistedmatrix.com
  • pylibpcap เป็น library ตรวจจับ packet บน Network
  • Scapy library ตรวจจับ packet บน Network ท่านด้วย python ลองใช้ดูครับ ท่านอาจจะลืม wireshark ไปเลยก็ได้ ตัวนี้ run บน linux/Unix ใช้ libpcap เพิ่งจะลองทดสอบใช้งานเดี๋ยวนำมา review กัน

Web Framework

  • Django เป็น web framework ใช้ภาษา python เป็นหลักในการพัฒนา และ update อย่างต่อเนื่อง รองกับการใช้งานร่วมกับ Apache , MySQL,SQLite มีตัว CMS ใน style python เรียกว่าใครต้องการเขียน web application กับ pure python ก็ไม่น่าพลาด หาข้อมูลเพิ่มเติมจาก  https://www.djangoproject.com/ ซึ่งมีเอกสารและตัวอย่างการใช้งานมากมาย โดยส่วนตัวแล้วน่าเหมาะกับงานที่เขียนด้วย python แล้วต้องการแสดงผลบน web ด้วยแล้วไม่ต้องการเขียน PHP, ASP ลดความซับซ้อนมากกว่า แต่สำหรับความต้องการที่จะนำไปใช้งานอย่างเป็นร่ำเป็นสัน การใช้งาน conjuction กับ apache น่าจะเพิ่มความเสถียรให้กับระบบได้เป็นอย่างดี
  • Tornado เป็น  web framework ตัวหนึ่ง เขียนด้วย python ซึ่งปกติ python เองก็มี Library สำหรับการทำ Http Server จำพวกนี้อยู่แล้ว แต่การนำมา Library ดังกล่าวมาพัฒนาต่อยอดก็นับว่าทำให้เราสามารถ configure และใช้งานได้ง่ายมากขึ้น เหมาะกับ Application ที่ไม่ต้องการความซับซ้อนมากนัก ไม่ต้องการลง web server รุ่นพี่อย่าง apache  เน้นความเงียบง่าย เล็กเร็ว ซึ่งสามารถ download มาทดสอบใช้งานได้ หากใครมีพื้นฐานทางภาษา PHP ก็สามารถใช้งานต่อยอดได้ไม่ยาก ตัวอย่าง เช่น คำสั่งแสดงผล ของ PHP ใช้ echo แต่ Tornado ใช้ write แทน ประมาณนี้ http://www.tornadoweb.org/
  • อื่น ๆ นอกจากนี้ยังมี framework อีกหาข้อมูลได้จาก http://wiki.python.org/moin/WebFrameworks เช่น pylons , pyramid , zope , web2py ซึ่งผมเองไม่มีเวลามากพอที่จะศึกษาการทำงานได้หมด แต่ละตัวเลือกใช้งาน ตามความเหมาะสมกับโครงการนั้น การศึกษาข้อมูลจากตัวอย่างและเอกสาร เป็นสิ่งจำเป็นในการเลือกใช้งาน framework แต่ละตัว

ระบบควบคุม

  • OpenOPC สำหรับงาน Automation หรือที่เกี่ยวข้องกับ OPC python ก็มี library เช่นกัน สามารถอ่านและศึกษาเพิ่มเติมได้ที่ http://openopc.sourceforge.net/ ซึ่งจะรู้ว่า OPC บน python นั้นง่ายกว่าที่คิด (รองรับการทำงานบน linux ด้วย)
  • pymodbus สำหรับระบบควบคุม เช่น PLC หรือ controller อื่นซึ่งสามารถรองรับ modbus protocol python เองก็มี library รองรับ (ลงเพิ่มเติม 3rd party) download ซึ่งผมเองก็ลองทดสอบ บน modbus TCP แล้ว สามารถใช้งานได้บน PLC ABB แต่ส่วนอุปกรณ์ตัวอื่นยังไม่ได้ลอง สามารถอ่านข้อมูลเพิ่มเติมเกี่ยวกับ pymodbus และ document มีตัวอย่าง code ให้ลองใช้งาน
  • BACpypesเป็น library สำหรับ BACnet applications ซึ่งบอกตรง ๆ ว่ายากเหมือนกัน ผมแกะ code อยู่นานก็ยังไม่สำเร็จ (อาจจะโดนเส้นผมบังภูเขา) หากใครลองได้สำเร็จก็ช่วยแนะนำด้วยนะครับ ใน web ของ BACpypes มีวิธีการ ตั้ง library บน linux และตัวอย่างเช่นเคย

ฐานข้อมูล

  • pymssql   เป็น python library ที่ใช้สำหรับ connect database รองรับ MS SQL Server 2000 ถึง MS SQL Server 2008 Express Edition (อ่านเพิ่มเติม) รองรับการเชื่อมต่อกับหลาย platform  สามารถ download และติดตั้งเพิ่มเติมได้เอง และกรุณาศึกษา ตัวอย่าง code ก่อน   และอ่าน document and license ก่อน

Image & Graphic

  • Python Imaging Library (PIL) เป็น library ที่ใช้งานเกี่ยวกับรูปภาพ รองรับรูปภาพมากมายหลากหลาย format (ผมเองก็จำได้ไม่หมด ต้องลองใช้งานดู) หรือ หาอ่านจาก Image File Format ในหน้าเอกสาร Document  และมี functionรองรับ เช่น  การ resize,insert,merge,text,convert,thumnail,copy,crop,getcolors,getdata,histrogram และอื่น ๆ อีกมากมาย

Portable python

  • portable python , “portable” เป็นการเรียกใช้งาน software ได้เลย โดยไม่ต้องติดตั้ง โดย Copy File install ไว้ใน Flash drive แบบพกพา ใน python เองก็มีคนทำ python portable ซึ่งสามารถใช้งาน Library และ module พื้นฐานที่เขาเตรียมไว้ให้ ผมทดสอบแล้วนับว่ามีประโยชน์มาก สามารถนำ code ไป run เครื่อง window ที่ได้ได้ติดตั้ง python ได้เลย เจ๋งมาก ก่อนติดตั้งลงบน Flash drive ก่อนเลือกลง Library เท่าที่จำเป็นนะครับ ลงไปหมด บางตัวก็ไม่ได้ใช้เลยเปลืองเนื้อที่โดยเปล่าประโยชน์ สามารถ download และ ดูวิธีการติดตั้งได้ Document

Python For Window

  • PyWin32 เป็น Python Extensions for Windows ซึ่งประกอบด้วย module Component Object Model (COM),Win32 API calls,Registry,Event log,Microsoft Foundation Classes (MFC) user interfaces [ที่มา] ซึ่งหากใครเขียน python บน window ที่ต้องการ module API เพื่อเชื่อมข้อมูล library ใน win32. การติดตั้ง pywin32 เพิ่ม ย่อมทำให้การเขียน python บน window สะดวกและง่ายขึ้น สามารถ Download version ล่าสุด และเลือก module ที่สอดคล้องกับ version ที่สอดคล้องกับการลง python ของเราได้ที่ http://sourceforge.net/projects/pywin32/files/pywin32 Py2exe
  • Python scripts into executable Windows programs เป็นการแปลง python script ให้เป็น exe file โดย py2exe จะเลือกเอา library ที่เรา import ใช้งานมาแยกออกมา และสร้างตัว .exe สำหรับ run บน window โดยไม่ต้องพึ่ง python interpreter ในเครื่อง ดูตัวอย่าง จาก Tutorial
  • ExeMaker เป็น Tool อีกตัวที่ใช้แปลง .py เป็น .exe คล้าย ๆ กับ py2exe แต่ library มีขนาดเล็กว่า (รู้สึกจะไม่ได้พัฒนาต่อแล้ว ไม่เห็นมี update ตั่งแต่ปี 2004 )

Pyro

  • Python Remote Objects เป็น library สำหรับการอ่านเขียน object ผ่าน network อธิบายให้ง่ายคือ การเข้าถึงข้อมูลในรูปแบบ object จากเครื่องลูกข่ายได้เลยโดยที่เราไม่ต้องยุ่งยากในการแปลงข้อมูล เราไม่ต้องเข้าใจการทำงานของ socket มากก็สามารถใช้งานได้ ลอง Download มาใช้ดูครับ จริง ๆ แล้ววิธีการของเขาก็ไม่ต่างอะไรกับการใช้งาน library pickle ร่วมกับ socket