狠狠撸

狠狠撸Share a Scribd company logo
1年ぶりの発表だよ!
しくじりそうな予感
笔测厂肠谤颈辫迟の绍介
お前誰よ
? 2bo (@2box2bo)


? お仕事
?
サーバーインフラ園児にあ


? 趣味
?
酒、本、ボードゲーム


? 住んでるとこ
?
岐阜(名古屋の植民地)


? 最近のあ
?
メンタルが死んでいる
笔测厂肠谤颈辫迟の绍介
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=/slideshow/pyscript/251876576/"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=/slideshow/pyscript/251876576/"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

笔测厂肠谤颈辫迟の绍介