- PyScript एक ओपन सोर्स प्लेटफ़ॉर्म है जो ब्राउज़र में Python कोड चलाने देता है, जिससे वेब पेज खुद Python execution environment बन सकता है
- यह वेब की सार्वभौमिकता और Python ecosystem को जोड़कर यह बात सामने रखता है कि जहां ब्राउज़र है, वहां Python चलाया जा सकता है
- जटिल installation के बिना ऐप ब्राउज़र में चलते हैं, इसलिए Python के सीखने में आसान syntax से web-based apps बनाए जा सकते हैं
- कोड user के ब्राउज़र में चलता है, जिससे महंगे infrastructure का बोझ घटता है, और output को वेब के URL के रूप में share किया जा सकता है
- यह beginners और advanced users दोनों को लक्ष्य करता है, और आसानी, अभिव्यक्ति-क्षमता, scalability, shareability, universality, security और power को अपनी मुख्य विशेषताएं मानता है
ब्राउज़र के भीतर Python execution environment
- PyScript ब्राउज़र में Python चलाने के लिए एक ओपन सोर्स प्लेटफ़ॉर्म है
- HTML के अंदर
script type="py"का उपयोग करके Python कोड चलाने का रूप इसका एक उदाहरण है- उदाहरण कोड ब्राउज़र document के अंदर
print('You can!')चलाता है
- उदाहरण कोड ब्राउज़र document के अंदर
- वेब और Python, इन दो technology ecosystems को जोड़ना PyScript की मुख्य दिशा है
- वेब दुनिया भर में एक सार्वभौमिक computing platform है
- Python दुनिया की लोकप्रिय programming languages में से एक है
- परिणामस्वरूप यह संदेश प्रमुखता से रखता है कि जहां ब्राउज़र है, वहां Python चलाया जा सकता है
शुरू करने का तरीका और प्लेटफ़ॉर्म की विशेषताएं
- PyScript.com पर इसे मुफ्त में आसानी से आज़माया जा सकता है
- Documentation beginners और advanced users दोनों के लिए है
- Community resources में देखा जा सकता है कि PyScript से क्या बनाया जा सकता है
- Discord के जरिए अन्य PyScript users से जुड़ा जा सकता है
- PyScript जिन विशेषताओं को सामने रखता है, वे इस प्रकार हैं
- Easy: जटिल installation के बिना apps ब्राउज़र में चलते हैं
- Expressive: Python जैसी powerful, लोकप्रिय और सीखने में आसान भाषा से apps बनाए जा सकते हैं
- Scalable: कोड user के ब्राउज़र में चलता है, इसलिए महंगा infrastructure जरूरी नहीं होता
- Shareable: applications को वेब के URL के रूप में share किया जा सकता है
- Universal: जहां ब्राउज़र चलता है, वहां कोड भी चलता है
- Secure: ब्राउज़र जैसे verified computing platform पर काम करता है
- Powerful: वेब और Python की खूबियों का साथ में उपयोग करता है
1 टिप्पणियां
Hacker News की राय
अगर आप उपयोग का उदाहरण देखना चाहते हैं, तो Dallas अपराध सांख्यिकी Panel डैशबोर्ड यहां देख सकते हैं: https://crimede-coder.com/graphs/Dallas_Dashboard
शुरू होने में करीब 1 मिनट लगता है, जिसमें कई Python लाइब्रेरी इंस्टॉल करना और बाहरी 5MB डेटासेट लोड करना शामिल है। एक बार खुल जाने के बाद यह काफी responsive है और iPhone पर भी अच्छी तरह चलता है।
जिन कई कंपनियों के साथ मैं काम करता हूं, वे Tableau के free version का इस्तेमाल करते हुए डेटा को manually refresh करती हैं, क्योंकि free version data store से direct connection की अनुमति नहीं देता। यह एक free alternative है, और GitHub Actions से compressed CSV file बनाकर environment में import कराने की व्यवस्था की गई है।
मुझे लगा था कि iPad के Safari के अंदर Panel app चलाने लायक Python bootstrap करने में 8 सेकंड से कहीं ज्यादा समय लगेगा। Shift refresh में करीब 6 सेकंड लगे।
शायद डेटा analysis के कारण Python चाहिए, और server cost की वजह से इसे server-side पर चलाना नहीं चाहते—ऐसी समस्या है क्या, यह भी जानना चाहूंगा।
homepage देखकर भी उलझन हुई, और docs पढ़ने के बाद भी ठीक-ठीक समझ नहीं आया कि यह है क्या।
थोड़ा खुद आज़माया तो website में डालने पर “Hello World” दिखा सका। यह ऐसा script लगता है जो
type="py"वाले scripts ढूंढता है और Pyodide के जरिए Python से JavaScript में transpile करता है।लेकिन homepage demo REPL है और title में “platform” लिखा है, इसलिए अब भी confusion है।
jspackage असलीwindowobject पर map होता होगा और किसी Proxy object के जरिए DOM methods call करने वाली API होगी।उम्मीद थी कि browser console में Python चला पाऊंगा।
यह Pyodide से कैसे अलग है? https://pyodide.org/en/stable/
PyScript, Pyodide या MicroPython इस्तेमाल कर सकता है, और MicroPython वाकई काफी छोटा है। runtime के ऊपर PyScript सिर्फ Python code चलाने से आगे बढ़कर, web programming में Python को सच में इस्तेमाल करने के लिए convenience features और quality-of-life improvements देता है।
हाल में PyScript से Python CLI apps को browser में चलाने वाली दिशा में काफी गहराई से देखा।
यह पूरे समय hacky लगा, खासकर जब dependencies आ जाती हैं। Pydantic 2.x इस्तेमाल नहीं कर सका, इसलिए workaround wrapper class बनानी पड़ी, और सारी logic Python files में डालने की कोशिश की, लेकिन कुछ features missing थे इसलिए कुछ हिस्सा JavaScript में डालना पड़ा।
Python code के ऊपर simple UI और custom UI logic लगानी हो तो ठीक हो सकता है, लेकिन Streamlit या Gradio ज्यादा सही हो सकते हैं।
GitHub repository: https://github.com/data-catering/data-contract-playground
website: https://data-catering.github.io/data-contract-playground/
वास्तविक use cases ढूंढना मुश्किल है। अगर आप machine learning model चलाना चाहते हैं, तो ONNX में build कर सकते हैं: https://onnxruntime.ai/docs/tutorials/web/
सोचता हूं कि JS/TS के बजाय browser-based app बनाने में यह कितना efficient होगा।
Firefox में script लिखकर browser को manipulate कर पाना अच्छा होगा। मतलब GET के समय, सभी GET के बाद, JavaScript evaluation से पहले/बाद जैसे किसी भी मनचाहे चरण में evaluation करना
सोच रहा हूँ कि क्या ऐसा कर सकने वाला कोई tool है, जिसमें Python की सभी खूबियाँ भी host से access की जा सकें
क्या यह Brython जैसा ही concept नहीं है? BRowser pYTHON: https://brython.info/
https://github.com/brython-dev/brython
https://yasoob.me/2019/05/22/running-python-in-the-browser/
थोड़ा brag करूँ तो, मैंने PyScript का इस्तेमाल करके एक ज़्यादा opinionated reactive frontend framework बनाया है। यह थोड़ा Vue.js से inspired है: https://puepy.dev
पहले मैंने इससे एक Markdown renderer बनाया था। बहुत simple source code यहाँ देखा जा सकता है: https://pyscript.com/@stuartmaxwell/markdown-previewer-v2/la...
app शायद mobile पर ठीक से न चले, लेकिन desktop पर ठीक रहेगा। Django में लिखे जा रहे blog application में मैंने यह code इस्तेमाल किया था
किसी भी WASM setup में आखिरकार CORS की वजह से बहुत सारी APIs call करने या sites scrape करने में बड़ी limitation आ जाती है, जो बहुत irritating है
बेशक CORS, XSS जैसी चीज़ों को रोकने के लिए अहम है, लेकिन CORS हटाने वाला proxy खड़ा करने के अलावा कोई और तरीका हो तो अच्छा होगा। ऐसा करने पर आपके पास residential IP के बजाय ऐसा IP रह जाता है जिसके block होने की संभावना ज़्यादा होती है