PythonとJavaScriptを統合することは可能ですか?たとえば、JavaScriptでクラスを定義して、Python(またはその逆) )。その場合、最善の方法は何ですか?これが可能な場合だけでなく、「深刻な」プロジェクトまたは製品内で誰かがそれを行った場合。
Jython および Rhino を使用してそれが可能になると推測していますが、実際に誰かがこれをやったかどうか、そして解決策があるかどうかに興味があります他のプラットフォーム用(特に CPython )。
Python SeaMonkey Javascriptインタープリターのラッパー... http://pypi.python.org/pypi/python-spidermonkey
pyjs についてはどうですか?
上記のウェブサイトから:
pyjsは、Webとデスクトップの両方のためのリッチインターネットアプリケーション(RIA)開発プラットフォームです。 pyjsを使用すると、JavaScriptを使用したWebアプリケーションをすべてPythonで作成できます。
この質問は必ずしも正確ではありませんが、いくつかの選択肢があります。
pythonオブジェクトとjavascriptオブジェクトの間の「明白な」遷移を可能にするプロジェクトが2つあり、intまたはfloatからNumberおよびstrまたはunicodeからStringへの「明白な」変換を行います。 PyV8 そして、ある作家がすでに述べたように: python-spidermonkey 。
実際にはpyv8には2つの実装があります。元の実験はsebastien louiselによるもので、2番目の実装(開発中)はチラシによるものです。
これらのプロジェクトに対する私の関心は、それらをpython-to-javascriptコンパイラーである pyjamas にリンクして、JIT pythonアクセラレーターを作成することです。
だからそこにたくさんあります-それはただあなたが何をしたいかに依存します。
JavaScriptとPythonの間で複雑なデータ型を共有することに興味がある場合は、 jsonpickle を確認してください。標準のPython JSONライブラリをラップしますが、Pythonクラスおよびその他のデータ型をシリアライズおよびデシリアライズする際にいくつかのスマートがあります。
かなりの数のGoogle App Engineプロジェクトがこのライブラリを使用しています。 Joose および FirePython は両方ともjsonpickleを組み込みます。
PyExecJS は、PyV8、Node、JavaScriptCore、SpiderMonkey、JScriptのそれぞれを使用できます。
>>> import execjs
>>> execjs.eval("'red yellow blue'.split(' ')")
['red', 'yellow', 'blue']
>>> execjs.get().name
'Node.js (V8)'
JavaScriptCore(WebKitから)に基づいたブリッジがありますが、それはかなり不完全です: http://code.google.com/p/pyjscore/
上記のこれらのプロジェクトの多くは、死んでいるか死にかけているため、活動や著者側からの関心がありません。この領域がどのように発展するかをフォローするのは興味深い。
記録のために、プラグインベースの実装の時代に、KDEキャンプはプラグインと非言語固有の方法でこれを解決しようとし、Krossを作成しました https://en.wikipedia.org/wiki/Kross_(software ) -私の理解では、コミュニティ自体の内部でさえ離陸しませんでした。
この鶏肉と卵子の問題が発生している間、javascriptベースの実装は間違いなく進むべき道です。将来的には、ブラウザでネイティブに完全にサポートされる完全なPython.
Firefox、Thunderbird、KomodoなどのXPCOM
ベースのアプリでは、XUL
を使用することもできます。
私は少し前にPyjonで遊んでいて、JavascriptのevalをPythonで直接記述し、簡単なプログラムを実行していました... JSの完全な実装ではなく、実験です。 :
Js2Py を使用してJavaScriptをPythonに変換します。これは利用可能な唯一のツールです:)