web-dev-qa-db-ja.com

PythonとJavaScriptを統合する最良の方法?

PythonとJavaScriptを統合することは可能ですか?たとえば、JavaScriptでクラスを定義して、Python(またはその逆) )。その場合、最善の方法は何ですか?これが可能な場合だけでなく、「深刻な」プロジェクトまたは製品内で誰かがそれを行った場合

Jython および Rhino を使用してそれが可能になると推測していますが、実際に誰かがこれをやったかどうか、そして解決策があるかどうかに興味があります他のプラットフォーム用(特に CPython )。

61

Python SeaMonkey Javascriptインタープリターのラッパー... http://pypi.python.org/pypi/python-spidermonkey

18
David Z

pyjs についてはどうですか?

上記のウェブサイトから:

pyjsは、Webとデスクトップの両方のためのリッチインターネットアプリケーション(RIA)開発プラットフォームです。 pyjsを使用すると、JavaScriptを使用したWebアプリケーションをすべてPythonで作成できます。

25
Stephen Simmons

この質問は必ずしも正確ではありませんが、いくつかの選択肢があります。

  • SkulptPythonの完全なブラウザ内実装です。」
  • Brython -"A Python 3クライアント側Webプログラミングの実装"
  • RapydScript -「余分なオーバーヘッドや癖のないPythonのようなJavaScript」
  • Transcrypt -"Lean and mean Python 3.6複数の継承、ソースマップ、静的型チェック、選択的演算子オーバーロードを備えたJavaScriptコンパイラへ。"( Githubで
14
Tobias Kienzler

pythonオブジェクトとjavascriptオブジェクトの間の「明白な」遷移を可能にするプロジェクトが2つあり、intまたはfloatからNumberおよびstrまたはunicodeからStringへの「明白な」変換を行います。 PyV8 そして、ある作家がすでに述べたように: python-spidermonkey

実際にはpyv8には2つの実装があります。元の実験はsebastien louiselによるもので、2番目の実装(開発中)はチラシによるものです。

これらのプロジェクトに対する私の関心は、それらをpython-to-javascriptコンパイラーである pyjamas にリンクして、JIT pythonアクセラレーターを作成することです。

だからそこにたくさんあります-それはただあなたが何をしたいかに依存します。

9
lkcl

JavaScriptとPythonの間で複雑なデータ型を共有することに興味がある場合は、 jsonpickle を確認してください。標準のPython JSONライブラリをラップしますが、Pythonクラスおよびその他のデータ型をシリアライズおよびデシリアライズする際にいくつかのスマートがあります。

かなりの数のGoogle App Engineプロジェクトがこのライブラリを使用しています。 Joose および FirePython は両方ともjsonpickleを組み込みます。

6
John Paulett

PyExecJS は、PyV8、Node、JavaScriptCore、SpiderMonkey、JScriptのそれぞれを使用できます。

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

JavaScriptCore(WebKitから)に基づいたブリッジがありますが、それはかなり不完全です: http://code.google.com/p/pyjscore/

2
Miles

上記のこれらのプロジェクトの多くは、死んでいるか死にかけているため、活動や著者側からの関心がありません。この領域がどのように発展するかをフォローするのは興味深い。

記録のために、プラグインベースの実装の時代に、KDEキャンプはプラグインと非言語固有の方法でこれを解決しようとし、Krossを作成しました https://en.wikipedia.org/wiki/Kross_(software ) -私の理解では、コミュニティ自体の内部でさえ離陸しませんでした。

この鶏肉と卵子の問題が発生している間、javascriptベースの実装は間違いなく進むべき道です。将来的には、ブラウザでネイティブに完全にサポートされる完全なPython.

1
Juha Tuomala

Firefox、Thunderbird、KomodoなどのXPCOMベースのアプリでは、XULを使用することもできます。

1
liucougar

私は少し前にPyjonで遊んでいて、JavascriptのevalをPythonで直接記述し、簡単なプログラムを実行していました... JSの完全な実装ではなく、実験です。 :

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

1
buzzilo

Js2Py を使用してJavaScriptをPythonに変換します。これは利用可能な唯一のツールです:)

1
Piotr Dabkowski