ปัจจุบัน ต้องยอมรับว่ากระแส WebAssembly มาแรงจริง ๆ หลายภาษาสามารถโยกย้ายไปรันบน WebAssembly ได้ รวมถึงภาษา Python ด้วย
Pyodide เป็นโครงการที่แปลง Python runtime ให้สามารถทำงานบน Web Browser ได้ด้วย WebAssembly พัฒนาโดย Mozilla โดยรวบรวมไลบรารีอย่าง NumPy, Pandas, Matplotlib, NetworkX และไลบรารีอื่น ๆ กว่า 30 ไลบรารีอีกด้วย นอกจากนั้นยังมีจุดเด่น คือ สามารถติดตั้งไลบรารีเสริมจาก PyPI ได้อีกด้วย (ดีกว่าที่คาดไว้) แต่รองรับเฉพาะไลบรารีที่เป็น pure Python เท่านั้น
การใช้งานเบื้องต้น
เราสามารถเรียกใช้งาน Pyodide โดยดึงผ่าน CDN ที่เตรียมไว้มารันกับ javascript ได้ทันทีhttps://pyodide-cdn2.iodide.io/v0.15.0/full/pyodide.jsตัวอย่างโค้ดจากเอกสาร Using Pyodide from Javascript
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
// set the pyodide files URL (packages.json, pyodide.asm.data etc)
window.languagePluginUrl = 'https://pyodide-cdn2.iodide.io/v0.15.0/full/';
</script>
<script src="https://pyodide-cdn2.iodide.io/v0.15.0/full/pyodide.js"></script>
</head>
<body>
Pyodide test page <br>
Open your browser console to see pyodide output
<script type="text/javascript">
languagePluginLoader.then(function () {
console.log(pyodide.runPython('import sys\nsys.version'));
console.log(pyodide.runPython('print(1 + 2)'));
});
</script>
</body>
เอาลอง เรามาลองเล่น Pyodide ผ่านหน้า Pyodide terminal emulator 🐍 กัน
เข้าไปที่ https://pyodide-cdn2.iodide.io/v0.15.0/full/console.html เราสามารถเรียกใช้คำสั่ง python พื้นฐานได้เกือบทั้งหมด น่าจะเพียงพอต่อการรันโค้ดพื้นฐาน
ต่อไปเรามาลองติดตั้งไลบรารีจาก pypi ลง Pyodide กัน โดยใช้คำสั่ง
import micropip
micropip.install('ชื่อไลบรารีหรือลิงก์ไฟล์ whl')
ตัดคำ PyThaiNLP บน Web Browser
เรามาลองไลบรารีตัวจริงอย่าง PyThaiNLP เพื่อตัดคำภาษาไทยกันimport micropip micropip.install('pythainlp')
ผลลัพธ์
import micropip micropip.install('tinydb') micropip.install('requests') micropip.install('https://files.pythonhosted.org/packages/3a/b3/4127905c4f7457abb018a0f4cb26130a59f937b3a1925cb0d171c18ab153/pythainlp-2.2.0.dev1-py3-none-any.whl')
ผลลัพธ์
from pythainlp.tokenize import word_tokenize text = "เรามาลองทดสอบอะไรเล่นกัน" word_tokenize(text)
ผลลัพธ์
รัน NumPy บน Web Browser
เราสามารถเรียกใช้งาน NumPy จาก Pyodide ได้ทันทีโดยไม่ต้องติดตั้งเอง ใช้คำสั่งpyodide.loadPackage(['numpy'])ทดสอบการใช้งาน
import numpy as npผลลัพธ์
np.array([1, 2, 3, 4, 5])
print(np.__version__)
นอกจากนั้น สามารถเข้าไปดูไลบรารีที่ Pyodide รองรับได้ที่ https://github.com/iodide-project/pyodide/tree/master/packages
อ่านเอกสารการใช้งาน Pyodide ได้ที่ https://github.com/iodide-project/pyodide
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)