SlideShare a Scribd company logo
1年ぶりの発表だよ!
しくじりそうな予感
PyScriptの紹介
お前誰よ
• 2bo (@2box2bo)


• お仕事


サーバーインフラ園児にあ


• 趣味


酒、本、ボードゲーム


• 住んでるとこ


岐阜(名古屋の植民地)


• 最近のあ


メンタルが死んでいる
PyScriptの紹介
OSC名古屋2022 Python東海/JuliaTokaiミニ合同勉強会


@2box2bo
Pycon US 2022で発表された


PyScriptをちょっと


触ってみた
PyScriptとは?
• PyCon US 2022でAnaconda社から発表のあった
PythonでWebアプリケーションが開発できるフ
レームワーク


• Apache License 2.0ライセンスでオープンソース


• 公式:https://pyscript.net/


• GitHub:https://github.com/pyscript/pyscript


•
どういう仕組み?
• ようわからんけどWASMとPyodideを組み合わせ
てるみたい


• Pythonの実際の動作部分はPyodideみたい


• PyScriptはPyodideを使いやすくしたイメージ


• Anacondaの発表


https://anaconda.cloud/pyscript-python-in-the-browser
何ができる?
• WebブラウザでPythonが動く


• ということはスマホでも動く


• 推奨ブラウザはChrome


• Pythonの各種パッケージが使える


• Javascriptと連携できる(みたい?)
デモとして


チュートリアルをやってみた
https://github.com/
pyscript/pyscript/blob/
main/docs/tutorials/
getting-started.md
作ってみたデモページ


https://2bobo.gitlab.io/
pyscript-demo/
デモページのソース


https://gitlab.com/2bobo/
pyscript-demo
デモ1
• こんにちわ世界


• `<py-script>`タグの中にPythonコードを書く
デモ1
<!DOCTYPE html>


<html>


<head>


<meta charset="UTF-8">


<title>demo_01</title>


<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />


<script defer src="https://pyscript.net/alpha/pyscript.js"></script>


</head>


<body>


<h1>デモ1 こんにちわ世界</h1>


<py-script>


print('Hello, World!')


</py-script>


</body>
デモ2
• print文で出力を表示
デモ2
<body>


<h1>デモ2 Pythonからの出力</h1>


<py-script>


a = 758


b = 2022


def tasizan(a, b):


x = a + b


return x


print(f"{ a } と { b } を足すと { tasizan(a, b) } になります。")


</py-script>


</body>
デモ3
• 内容はデモ2と同じだけど、SysntaxErrorを発
生させるとこんな感じになる
デモ3
<body>


<h1>デモ3 エラー出力</h1>


<py-script>


a = 758


b = 2022


def tasizan(a, b):


x = a + b


return x


print(f"{ a } と { b } を足すと { tasizan(a, b) } になります。")


</py-script>


</body>
デモ4
• 標準モジュールはimport文で呼び出し可能


• `pyscript.write`メソッドでidを指定してHTML
内にPythonの出力を表示できる
デモ4
<body>


<h1>デモ4 標準モジュールと出力方法1</h1>


<br>


<b><p>今日は<u><label id='today'></label></u>です。</p></b>


<br>


<div id="pi" class="alert alert-primary"></div>


<py-script>


import datetime as dt


# pyscript.write(ID, 値)で出力


pyscript.write("today", dt.date.today().strftime("%Y/%m/%d(%a)"))


def compute_pi(n):


pi = 2


for i in range(1,n):


pi *= 4 * i ** 2 / (4 * i ** 2 - 1)


return pi


pi = compute_pi(100000)


pyscript.write('pi', f'π is approximately {pi:.3f}')


</py-script>


</body>
デモ5
• `pyscript.write`メソッドだでけなく、`<py-
script output="hoge"`といった形でも指定可能


• この場合、最後に指定した変数がid:hogeにな
る


• Print文で出力した内容も含まれるので出力全般
が使えるみたい…だけど、よくわかってない
デモ5
<body>


<h1>デモ5 出力方法2</h1>


<py-script output="hoge">


a = 1 + 1


hoge = "(`・ω・´)ゞ"


print(a)


hoge


</py-script>


<br>


にゃーん


<div id="hoge" style="color: red;"></div>


</body>
デモ6
• 3rdパーティーのモジュールはPyodideで対応さ
れていれば`py-env`タグで指定して利用可能


• もしくは`.whl`ファイルに記載してもOK


• 利用可能モジュールの一覧


https://github.com/pyodide/pyodide/tree/
main/packages
デモ6
<!DOCTYPE html>


<html>


<head>


<meta charset="UTF-8">


<title>demo_06</title>


<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />


<script defer src="https://pyscript.net/alpha/pyscript.js"></script>


<py-env>


- numpy


- matplotlib


</py-env>


</head>


<body>


<h1>デモ6 外部モジュールの利用</h1>


<div id="plot"></div>


<py-script output="plot">


import numpy as np


import matplotlib.pyplot as plt


x = np.random.randn(1000)


y = np.random.randn(1000)


fi
g, ax = plt.subplots()


ax.scatter(x, y)


fi
g


</py-script>


</body>
その他
• `<py-con
fi
g>`タグで設定なんかもできそう


• こんなタグでUIも作れるっぽい


• `<py-inputbox>`


• `<py-box>`


• `<py-button>`


• `<py-title>`
まだ微妙と思われる部分
• 動作が遅い…(仕方ないとはいえ)


• 開発がAnaconda社


(個人的にはどうかな…と…)
おわり

More Related Content

PDF
Pythonで ハードウェアを動かす楽しさと ハードウェアハック始めたきっかけ
PPTX
211120 他人の書いたPythonスクリプトをステップ実行で理解する
PPTX
MicroPython + ESP32
PDF
今時のオンプレなgithubクローン環境構築
PDF
Python & PyConJP 2014 Report
PDF
スクレイピングとPython
PDF
Pythonを始めよう
PPTX
Kivyでゲーム
Pythonで ハードウェアを動かす楽しさと ハードウェアハック始めたきっかけ
211120 他人の書いたPythonスクリプトをステップ実行で理解する
MicroPython + ESP32
今時のオンプレなgithubクローン環境構築
Python & PyConJP 2014 Report
スクレイピングとPython
Pythonを始めよう
Kivyでゲーム

Similar to PyScriptの紹介 (20)

PDF
Python for Beginners ( #PyLadiesKyoto Meetup )
PPTX
200208 osh-nishimoto-v2
PDF
Pythonによるwebアプリケーション入門 - Django編-
PDF
Django で始める PyCharm 入門
PPTX
「Kivyによるアプリケーション開発のすすめ」の勧め
PDF
Python札幌 2012/06/17
PDF
2017823 pythonを始めよう
PPTX
171209 nishimoto-mpy-esp32
PDF
Bp study #122 PyQの学習者サポートから学んだpython初学者への解説ノウハウ
PDF
せっかくだから俺はこの NPAPI の話をするぜ
PPTX
Nishimoto 170603-mruby
PPTX
200918 hannari-python
PDF
【阪医Python会 2020新歓ハンズオン】COVID-19のデータを可視化してみよう
PDF
Rubyistがgemの前にPypiデビューするのは間違っているだろうか
PDF
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
PPTX
PYNQ 祭り: Pmod のプログラミング
PDF
サードパーティパッケージの歩き方
PDF
Oktavia全文検索エンジン - SphinxCon JP 2014
PDF
Digital OceanでPythonな環境を作ろう(途中成果) Python mini Hack-a-thon #43
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Python for Beginners ( #PyLadiesKyoto Meetup )
200208 osh-nishimoto-v2
Pythonによるwebアプリケーション入門 - Django編-
Django で始める PyCharm 入門
「Kivyによるアプリケーション開発のすすめ」の勧め
Python札幌 2012/06/17
2017823 pythonを始めよう
171209 nishimoto-mpy-esp32
Bp study #122 PyQの学習者サポートから学んだpython初学者への解説ノウハウ
せっかくだから俺はこの NPAPI の話をするぜ
Nishimoto 170603-mruby
200918 hannari-python
【阪医Python会 2020新歓ハンズオン】COVID-19のデータを可視化してみよう
Rubyistがgemの前にPypiデビューするのは間違っているだろうか
入門書を読み終わったらなにしよう? 〜Python と WebAPI の使い方から学ぶ次の一歩〜 / next-step-python-programing
PYNQ 祭り: Pmod のプログラミング
サードパーティパッケージの歩き方
Oktavia全文検索エンジン - SphinxCon JP 2014
Digital OceanでPythonな環境を作ろう(途中成果) Python mini Hack-a-thon #43
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Ad

More from 2bo 2bo (12)

PDF
結婚式のエンドロールを「Pythonで」当日作った話
PDF
あひる焼きの歴史 ver0.1
PPTX
Pyenvで幸せになろう.py
PPTX
Python東海の紹介.py
PDF
Pythonでzabbix apiを使ってみる
PDF
自宅仮想マシンをConohaに移行してみた
PDF
Pillowの使い方
PDF
PEP8を読んでみよう
PDF
Raspberry p ionzabbixproxy
PDF
Djangoとweb2pyをapacheに組込む
PDF
Raspberry piの紹介
PDF
Cent osにpyhtonをインストールしてみよう
結婚式のエンドロールを「Pythonで」当日作った話
あひる焼きの歴史 ver0.1
Pyenvで幸せになろう.py
Python東海の紹介.py
Pythonでzabbix apiを使ってみる
自宅仮想マシンをConohaに移行してみた
Pillowの使い方
PEP8を読んでみよう
Raspberry p ionzabbixproxy
Djangoとweb2pyをapacheに組込む
Raspberry piの紹介
Cent osにpyhtonをインストールしてみよう
Ad

PyScriptの紹介