2009-03-25 31 views
54

क्या पाइथन और जावास्क्रिप्ट को एकीकृत करना संभव है? उदाहरण के लिए, कल्पना करें कि आप जावास्क्रिप्ट में कक्षाओं को परिभाषित करने में सक्षम होना चाहते हैं और उन्हें पायथन (या इसके विपरीत) से उपयोग करना चाहते हैं। यदि हां, तो सबसे अच्छा तरीका क्या है? मुझे न केवल रुचि है अगर यह संभव है लेकिन किसी ने इसे "गंभीर" परियोजना या उत्पाद के भीतर किया है।पायथन और जावास्क्रिप्ट को एकीकृत करने का सबसे अच्छा तरीका?

मेरा अनुमान है कि यह, Jython और Rhino का उपयोग कर एक उदाहरण के लिए संभव हो जाएगा, लेकिन मैं उत्सुक हैं या नहीं, क्या कभी किसी ने वास्तव में इस किया है हूँ, और अगर वहाँ अन्य प्लेटफार्मों (विशेष रूप से CPython) के लिए समाधान कर रहे हैं।

+1

शायद आप सीम्थन को ईएमएसस्क्रिप्टन का उपयोग करके जावास्क्रिप्ट में संकलित कर सकते हैं, और उसके बाद ब्राउज़र में सीपीथन चला सकते हैं। जावास्क्रिप्ट से पाइथन कार्यों को कॉल करना संभव हो सकता है, और इसके विपरीत। http://syntensity.com/static/python.html –

+1

@AndersonGreen यह पहले से ही किया गया था: pypyjs - https://github.com/rfk/pypyjs – denfromufa

+0

इसके लायक होने के लिए, [यह SO उत्तर] (https: // stackoverflow.com/a/28652754/1519199) जेएस और पायथन के बीच वस्तुओं को साझा करने के लिए एक एकीकृत दृष्टिकोण प्रस्तुत करता है, और इसे [इस रेपो] (https://github.com/jdthorpe/ajvpy) में लागू किया गया है जो बस एक नोडजेएस मॉड्यूल को बंडल करता है वेबपैक के माध्यम से और इसे एक पायथन मॉड्यूल के रूप में उजागर करता है। – Jthorpe

उत्तर

18

यहाँ कुछ, SeaMonkey जावास्क्रिप्ट दुभाषिया के चारों ओर एक अजगर आवरण है ... http://pypi.python.org/pypi/python-spidermonkey

+0

यह मेरी सबसे नज़दीकी चीज की तरह लगता है जो मैं खोज रहा था; धन्यवाद। –

24

के बारे में कैसे pyjs?

ऊपर वेबसाइट से:

pyjs दोनों वेब और डेस्कटॉप के लिए एक रिच इंटरनेट अनुप्रयोग (रिया) विकास मंच है। Pyjs के साथ आप पाइथन में पूरी तरह से अपने जावास्क्रिप्ट संचालित वेब अनुप्रयोगों को लिख सकते हैं।

+9

पायजामा अब पायज है। लिंक - http://pyjs.org/ – AppleGrew

+1

@AppleGrew क्या ब्राउज़र में पूरी तरह से पजामा चलाने के लिए संभव है (बिना किसी सर्वर-साइड घटकों के)? –

+1

ध्यान दें कि pyjs पायथन 3.0+ का समर्थन नहीं करता है https://github.com/pyjs/pyjs/issues/831 – AXO

6

यदि आप जावास्क्रिप्ट और पायथन के बीच जटिल डेटा प्रकार साझा करने में रुचि रखते हैं, तो jsonpickle देखें। यह मानक पायथन जेएसओएन पुस्तकालयों को लपेटता है, लेकिन पाइथन कक्षाओं और अन्य डेटा प्रकारों को क्रमबद्ध करने और deserializing में कुछ स्मारक हैं।

कुछ Google ऐप इंजन परियोजनाओं ने इस पुस्तकालय का उपयोग किया है। Joose और FirePython दोनों jsonpickle को शामिल करते हैं।

+0

ध्यान दें कि jsonpickle एक गैर-मानक "py/ref" संदर्भ प्रकार का उपयोग करता है जो गैर- पायथन ग्राहकों। वर्तमान में इसे बंद करने का कोई तरीका नहीं है। http://code.google.com/p/jsonpickle/issues/detail?id=9 – pimlottc

2

आप पीपीपी प्रोजेक्ट को भी देखना चाहते हैं - उनके पास पाइथन से जावास्क्रिप्ट, सी, और llvm सहित पाइथन (कुछ भी) कंपाइलर है। यह आपको पाइथन में अपना कोड लिखने की अनुमति देता है और फिर इसे अपनी इच्छानुसार जावास्क्रिप्ट में संकलित करता है।

http://codespeak.net/pypy

इसके अलावा, जानकारीपूर्ण ब्लॉग की जाँच:

http://morepypy.blogspot.com/

दुर्भाग्य से, हालांकि, आप जावास्क्रिप्ट इस तरह से अजगर को परिवर्तित नहीं कर सकते। ऐसा लगता है कि कुल मिलाकर वास्तव में अच्छी तरह से काम करना प्रतीत होता है, उनके पास बुब्न'इफ गेम ऑनलाइन के एक जावास्क्रिप्ट (संकलित पायथन से बना) संस्करण होता था (हालांकि सर्वर थोड़ी देर के लिए नीचे चला गया है)।

http://bub-n-bros.sourceforge.net

9

दो परियोजनाओं है कि अजगर वस्तुओं और जावास्क्रिप्ट वस्तुओं के बीच एक "स्पष्ट" संक्रमण की अनुमति देते हैं, str या यूनिकोड स्ट्रिंग के साथ पूर्णांक से "स्पष्ट" अनुवाद देखते हैं या संख्या के लिए नाव और: PyV8 और एक के रूप में, लेखक ने पहले से ही उल्लेख किया है: python-spidermonkey

वास्तव में पीवीवी 8 के दो कार्यान्वयन हैं - मूल प्रयोग सेबेस्टियन लुइसेल द्वारा किया गया था, और दूसरा (सक्रिय विकास में) फ़्लियर लियू द्वारा किया गया है।

इन परियोजनाओं में मेरी रूचि उन्हें एक जेआईटी पायथन त्वरक बनाने के लिए pyjamas, एक पायथन-टू-जावास्क्रिप्ट कंपाइलर से जोड़ने के लिए किया गया है।

इसलिए वहां बहुत कुछ है - यह केवल उस पर निर्भर करता है कि आप क्या करना चाहते हैं।

+1

pyv8 अभी भी अच्छी तरह से बनाए रखा गया है, दुर्भाग्य से यहां दिए गए उत्तरों के लगभग सभी अन्य विचारों के विपरीत। –

1

एक और संभावना XPCOM उपयोग करने के लिए है, XUL आधारित एप्लिकेशन में कहते हैं कि (फ़ायरफ़ॉक्स, थंडरबर्ड, कोमोडो आदि)

1

मैं Pyjon साथ खेल रहा था कुछ समय पहले और अजगर में सीधे जावास्क्रिप्ट का eval लिखने के लिए प्रबंधन लगती है और भाग गया सरल कार्यक्रम ... हालांकि यह जेएस और एक प्रयोग के पूर्ण कार्यान्वयन नहीं है। इसे यहाँ प्राप्त करें:

http://code.google.com/p/pyjon/

3

PyExecJS PyV8, नोड, JavaScriptCore, Spidermonkey, JScript में से प्रत्येक का उपयोग करने में सक्षम है।

>>> import execjs 
>>> execjs.eval("'red yellow blue'.split(' ')") 
['red', 'yellow', 'blue'] 
>>> execjs.get().name 
'Node.js (V8)' 
+0

पीएसवी 8 –

1

उपयोग Js2Py पायथन के लिए जावास्क्रिप्ट अनुवाद करने के लिए, यह केवल उपलब्ध उपकरण :)

+0

के विपरीत ओएसएक्स पर बॉक्स से बाहर काम करता है पाइथन 3.x का समर्थन नहीं करता है https://github.com/PiotrDabkowski/Js2Py/issues/6 – AXO

+1

पाइथन 3 का समर्थन करता है –

10

यह सवाल वास्तव में युवा नहीं है, लेकिन वहाँ कुछ विकल्प आए हैं:

  • "Skulpt पाइथन के कार्यान्वयन पूरी तरह से ब्राउज़र में है। "
  • Brython-
  • RapydScript "क्लाइंट साइड वेब प्रोग्रामिंग के लिए एक अजगर 3 कार्यान्वयन" - "अजगर की तरह जावास्क्रिप्ट अतिरिक्त भूमि के ऊपर या quirks के बिना"
  • Transcrypt - "झुक और कई के साथ जावास्क्रिप्ट संकलक करने के लिए अजगर 3.6 मतलब विरासत, स्रोतमैप, स्थिर प्रकार की जांच और चुनिंदा ऑपरेटर ओवरलोडिंग। " (on Github)
+4

बस मेरे दो सेंट जोड़ने के लिए, स्कुलप्ट और ब्राइटन दोनों पूर्ण उड़ाए गए कंपाइलर्स/भाषाओं की बजाय खिलौने हैं।रैपिडस्क्रिप्ट और ट्रांसक्रिप्ट प्रदर्शन के अनुसार उनके चारों ओर सर्किल चलाएगा। वास्तव में, जेएस में प्रदर्शन पायथन दुभाषिया की अनुपस्थिति कारण रैपिडस्क्रिप्ट का आविष्कार करने का कारण था। रैपिडस्क्रिप्ट में अब टाइपस्क्रिप्ट की तरह टाइप सुरक्षा की एक अतिरिक्त लाभ है। अस्वीकरण: मैं रैपिडस्क्रिप्ट रखरखाव हूं। –

+0

@AlexanderTsepkov मेरे पास परीक्षण करने का समय नहीं था, इसलिए आपके लिए धन्यवाद :) –

+1

ट्रांसक्रिप्ट पाइप-स्थापित किया जा सकता है, अच्छा अगर आप जेएस पारिस्थितिक तंत्र में खुद को विसर्जित नहीं करना चाहते हैं। हालांकि, जहां तक ​​मैंने अभी तक एकत्र किया है, रैपिडस्क्रिप्ट सबसे तेज़ विकल्प है। विकल्पों की एक अच्छी श्रृंखला का वर्णन किया गया है [यहां] (https://github.com/zoofIO/flexx/wiki/PyScript-vs-X)। वहां भी [जिप्फी] (https://github.com/timothycrosley/jiphy) है जो अनजान प्रतीत होता है। – Jay

संबंधित मुद्दे

 संबंधित मुद्दे