python:pyodide

Pyodide - Web ブラウザで動作する Python 環境

ソースコード: GitHub - iodide-project/pyodide: The Python scientific stack, compiled to WebAssembly

Pyodide (パイオダイド) とは Mozilla が開発中の Web ブラウザーの WebAssembly で動作する Python の実装である。
Web ブラウザ上で Python 言語および Python のデータサイエンスライブラリ (NumPy, Scipy, Pandas, Matplotlib… などpyodide/packages を参照) をそのまま使ってプログラミングできるような環境を目指している。
PyodideEmscripten (C/C++ から WebAssembly を生成するコンパイラ) を利用した cpython-emscripten を元に開発されている。

Python Interpreter Loading...


>>> import sys
>>> sys.version
3.7.0 (default, Dec 11 2019, 12:37:21) 
[Clang 6.0.1 ]
>>> sys.version_info
3,7,0,final,0
>>> import platform
>>> platform.system()
Emscripten
>>> platform.platform()
Emscripten-1.0-x86-JS-32bit
>>>

Releases · iodide-project/pyodide · GitHub より pyodide-build-0.14.3.tar.bz2 をダウンロードして Web サーバーに配置する。

$ curl -LO https://github.com/iodide-project/pyodide/releases/download/0.14.3/pyodide-build-0.14.3.tar.bz2
$ tar jxvf pyodide-build-0.14.3.tar.bz2 -C dokuwiki/data/media/python/pyodide/

console.html を実行するには修正が必要である。
pyodide_dev.js をロードする前に self.languagePluginUrl の設定が必要である。(これを設定しないと内部のロード処理が全てのファイルが Web サーバーのルートに置かれていると仮定して動作する)

console.html
<!doctype html>
<html>
  <head>
    ...
    <script>
      self.languagePluginUrl = './';
    </script>
    <script src="./pyodide_dev.js"></script>
  </head>
  ...

更に Microsoft Edge で実行可能にするには、以下の修正が必要である。
48~52 行目

pyodide_dev.js
      try {
        dirs = FS.readdir(rootpath);
      } catch (err) {
        return;
      }

} catch {} catch (err) { に修正。

87~92 行目

pyodide_dev.js
      try {
        self.importScripts(url);
        onload();
      } catch (err) {
        onerror();
      }

} catch {} catch (err) { に修正。

  • python/pyodide.txt
  • 最終更新: 2022/01/23 07:25
  • by ともやん