2
1

pyodideとpyscript

Posted at

今日は表題のものを紹介します。

背景

onlineでpythonが動く環境って結構ありますよね。私が良く使うのだと以下のやつです。

でも大抵のサービスはwebアプリになっているだけで、実際のpythonコードはサーバーで動いているわけです。自分で動かしてるサーバーでそういうアプリを入れるとなるとパフォーマンスやらセキュリティやら気になってしまいますよね。

ではクライアント(ブラウザ上)で動かせないか?と考えたのがpyodideです。

pyodide

これ実体はwasmなのです。以下はデモです。

例えば以下のようなコードを貼り付けて実行してみてください。

import time
s = time.monotonic()
while s + 30 > time.monotonic():
     pass

ちゃんとCPU使ってるでしょ?気になったら本家にGo

pyscript

これを使ってHTMLにpythonを埋め込めるのがpyscriptです。

から引用したサンプルコードがこちら。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Sine Wave</title>
  <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
  <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</head>
<body>
  <py-env>
    - matplotlib
    - numpy
  </py-env>
  <py-script>
import matplotlib.pyplot as plt
import numpy as np

time = np.linspace(0, 2 * np.pi, 100)
plt.plot(time, np.sin(time))
plt
  </py-script>
</body>
</html>

これをjsfiddleなどのページに貼り付ければちゃんとpythonコードが動いてグラフが表示されてしまうのです。
気なった方は本家にGo

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1