「PyScript」はJavaScriptのようにPythonコードをHTML内に記述して実行可能、Anacondaがオープンソースで公開

2022年5月9日

Pythonの主要なディストリビューション「Anaconda」などを提供しているAnaconda社は、HTML文書の中にJavaScriptと同じようにPythonのコードを記述し、実行可能にする「PyScript」をオープンソースで公開しました

下記がPyScriptのコードの例です。まるでJavaScriptのように<py-script>タグを用いてHTMLの中にPythonのコードを記述しています。

<html>
  ...
  <py-script> print('Now you can!') </py-script>
</html>

Webブラウザ上にPythonインタプリタ

PyScriptによるPythonコードの実行はWebAssemlby化されたPythonインタプリタによってWebブラウザ上で実行されるため、サーバ側に特別な仕組みを持つ必要はありません。

PyScriptのデモページも用意されており、Hello Worldから始まり、ToDoアプリや統計とグラフ化などまで、さまざまなアプリケーションの記述が可能なことが示されています。

pyscript01
pyscript02

一般的なPythonライブラリ群にも対応するとのことで、Webブラウザ上でPythonの得意な計算処理も可能になることが期待されます。

PythonインタプリタをWebAssemblyで実装した「Pyodide」が中心

前述の通り、PyScriptはWebAssembly化された代表的なPythonインタプリタ実装である「Pyodide」(パイオダイドと発音されているようです)を用いて開発されています。

PyodideはMozillaが2018年に開発を開始したプロジェクトで、Pythonのリファレンス実装であるCPythonのソースコードに最小限の変更を行い、EmscriptenでWebAssemblyへコンパイルできるようにすることで、WebブラウザなどのWebAssembly実行環境上で事実上標準と同じPythonインタプリタが実行できることを目指しているプロジェクトです。

参考:PythonインタプリタをWebAssemblyへコンパイル、Webブラウザで稼働するPython環境「Pyodide」。Mozillaが開発中

PyScriptはこのPyodideを中心に、HTMLやJavaScriptとの連携機能などを実装したものです。

pyscript03

WebAssemblyによるインタプリタの実装はPythonだけでなくRubyでも実現しています。PyScriptができるなら、RubyScriptも技術的に可能でしょう。

参考: WebAssembly/WASIに対応した「Ruby 3.2 Preview 1」公開。WebブラウザでRubyが動く世界がやってくる

PyScriptはビジョンとしてPython以外の言語にも対応する方向性を示しています。今後Webブラウザでは用途に応じてJavaScript以外の言語を選んでプログラミングする、ということが広がっていくのでしょうか。

関連記事

PublickeyではWebAssemblyが注目され始めた2017年に、JavaScript以外の選択肢が広がる可能性について記事を書いていました。

あわせて読みたい

WebAssembly プログラミング言語 Python




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本