要約
ざっくり軽く調べた感じだと
- PyScriptとは
- Pyodideでビルドされてる
- 簡単にいうとHTML上でPythonが動かせる
-
Pyodideとは
- CPythonのWebAssenblyへの移植版
- ブラウザ上でPythonを動かす
- micropipを使う
- WebAssenblyとは
- バイナリコードをブラウザで扱うための技術
要するにPythonをバイナリ変換してWebAssenblyで動かしてるってこと?
- 何が嬉しいのか
- JSではない選択肢が増える?
- JSではできないことができる可能性がある?
- JSより早くなる?
とりあえず使ってみる
git clone https://github.com/pyscript/pyscript
cd pyscriptjs
npm install --global rollup
npm install
npm run dev
上記のコマンドを実行してhttp://localhost:8080/ にアクセスすれば次のような画面が表示されます。
[Basic examples]のHello worldを開いてみるとPythonによって現在時刻が計算されていますという内容の文章が表示されます。
画面を表示しているhtmlファイルpyscriptjs/examples/hello_world.html
の中身を見てみるとPythonコードが<py-script></py-script>
内で定義されています。
~(省略)~
<body>
Hello world! <br>
This is the current date and time, as computed by Python:
<py-script>
from datetime import datetime
now = datetime.now()
now.strftime("%m/%d/%Y, %H:%M:%S")
</py-script>
</body>
~(省略)~
[Visualizations & Dashboards]のFractals with NumPy and canvasでは<py-env></py-env>
でnumpy, sympy, 外部のpyファイルをimportしてフラクタルを描画しています。
~(省略)~
<py-env>
- numpy
- sympy
- paths:
- ./palettes.py
- ./fractals.py
</py-env>
~(省略)~
使用可能なライブラリ
現時点ではここに記載されているものが使用可能なようです。例えばopencv-python
やscikit-learn
も使えるようです。もしかすると頑張ればここにないライブラリも使える?
まとめ
今回はサンプルコードを軽く触ってみました。また興味がでたら触ってみようと思いますが今すぐに何かに活用できそうだなとは思いませんでした。
参考文献