9/26 - 28 広島で開催されたイベント "PyCon JP 2025" に参加してみた。
自分にとっては初めてのプログラミング言語がPythonだっただけに、お世話になった言語というイメージが強い。Pythonを使って作ったもので内定まで取れたし。
参加にあたり、遠方参加者の支援制度を活用して、交通費や宿泊費を運営である一般社団法人 PyCon JP Association様にご負担いただきました。ありがとうございます。
PyCon JP 2025
一般社団法人 PyCon JP Association主催。
PyCon JP は、Python ユーザが集まり、Python や Python を使ったソフトウェアについて情報交換、交流をするためのカンファレンスです。 PyCon JP の開催を通じて、Python の使い手が一堂に集まり、Python にまつわる様々な分野の知識や情報を交換し、新たな友達やコミュニティとのつながり、仕事やビジネスチャンスを増やせる場所とすることが目標です。
Day1, Day2, 開発スプリントの合計3日間開催される。
チケットはDay1とDay2、開発スプリントで分かれている。学生用・U25用チケットが用意されており、割引価格で参加できる。
印象に残った発表 - Day1
Day1で行われた各種発表のうち、特に印象に残ったプレゼン
フロントエンドエンジニアが Python エンジニアになって見えた世界!
翁安さん
自分自身、就職後に(おそらく)typescriptとpython両方を触る機会があるので、両言語を比較する内容はとても分かりやすく、すぐにイメージをつかめた。
特に、セッションの中で触れられていたNone
の概念、==
===
is
の違いはそもそも全く意識したことがなく、is
と==
においてはほぼ同じものだと理解していたので、自分の固定概念を壊す良い機会になった。
また、リスト内包表記に関する考えは特に共感した。
リスト内包表記そのものはとても便利だけど、if
を入れたら見づらくなる。今まではそういうものかと諦めていたが、よく考えたら可読性を下げてまでリスト内包表記を頑なに使う必要があるかは、都度考える必要があるかもしれない。
f-stringについては、正直今までは何も考えず受け入れていたが、よく考えたら他の言語においてf-stringに似た概念は聞かない。python特有なのかもしれないが、pythonの恩恵を知らず知らずのうちに受けていることに気づいた。
自分はほとんど独学でpythonを習得しているので、なんとなくこんな感じで理解している部分が多い。改めて自分がわかっているつもりになっているところがないかを考えるきっかけになった。
医療職が始めるPython:1000人が集うコミュニティの創造
中尾稔さん
2日間のセッションの中で、正直これに一番感動した。
中尾さんは、広島がん高精度放射線治療センターの医学物理士さん。
医療用デジタルデータ(DICOM)の活用に関するセッション。
どう考えてもPythonからほど遠い世界にいるはずのお医者さんが、pythonを使って劇的に業務効率を上げるどころか、それを主体的に他のお医者さんに広める活動をしている。
お医者さんのように、自分が今まで全く知らなかった世界の人のお話は聞いているだけでも面白い。まして自分が大学に入った時から使っているpythonが役立っていると聞いたら、俄然興味がわいた。
がん専門なので直接コロナに関わったわけではないものの、2020年の大変な時期を医療従事者として乗り越え、日本の(放射線治療に関わる)お医者さんの20%以上を巻き込む勉強会を開き、一人でも多くの命を救うために努力する中尾さんには頭が上がらない。
Python in Excelをより便利に使える実践プラクティスの紹介
Ryuji Tsutsuiさん
Python in Excel自体は、リリース当時から知っていたが、すでにPython環境を一通り用意していた自分にとってはその恩恵がよくわからなかった。そもそもExcel自体あまり使わないし、表計算ならpandasでいい。実際、Python in Excelはpandasを主軸に実装されている。
このセッションでは、Python in Excelによる責任分離がメリットとしてあげられていた。
事前にExcelを用意し、Python関数 =PY
を適用することで、仮に後からExcelデータを変更せざるを得なくなった場合でも、変更したデータを =PY
で自動処理できる。
そして個人的に何より大きなメリットは、あのよくわからないExcel関数を覚えずに、必要な処理は自分の好みで書けることがとてもうれしい。
正直Excel関数全然わかんない。
Sweetski: A Python-Powered Dessert Adventure Through Japan
Diane Phanさん
プレゼンのリンクは一般公開されていないようです。リクエストを送ったら承認していただけました
このセッションは英語で行われたものの、英語が苦手でも聞きやすい、とてもわかりやすいセッションだった。実際、このセッションの「オーディエンスに求める前提知識」の項目には Python and web development is beneficial but not required
(特に求められる知識はありません) と書かれている。
Diane Phanさんはアメリカから来日し、日本のスイーツに感銘を受けたようで、日本中のカフェやケーキ屋さんを巡って、すべてNotionや自作アプリに記録をつけている。その行動力と資金力は本当に羨ましい。日本人が今アメリカの各都市を巡る旅行なんてしたら普通破産する。
LaunchDarklyというツールが紹介されていたが、これは初めて見た。正直、最近のAIモデルは何が違うのかよくわからないところまで来ている。どれに聞いても同じような答えが返ってくるし、まだ学生の自分は、モデルの差が出るような高度な使い方をしない。
お気に入りスイーツのお店を記録するうえで、緯度・経度のデータを用いていたが、やはり緯度・経度は小数点が多く、pythonのdecimal
などを使わないと厳しいように見受けられた。このあたりは探せば位置情報を簡単に表現できるツールはあるので plus code, what3wordsなど
もしかしたら改善できるかもしれないが、緯度経度のほうがデータの入手は簡単なので、AIがあれど難しそうだなと感じた。
個人的に一番うれしかったことは、Diane Phanさんが render.com のユーザーだったこと。なぜか日本ではあまり見かけない(自分の周りだけ?)のだが、以下の機能が完全無料・クレカ登録不要で利用できる。
- 軽量なWebサイトであれば24時間365日稼働可能
- GitHub連携機能による自動デプロイ
- GitHub ActionsのCI/CD完了後という設定も可能
- ヘルスチェック機能 (問題があれば再起動してくれる)
- Pull request preview
- Slack通知機能
- Log stream
Diane Phanさんもこのサービスを絶賛していて、自分もrenderでwebを完全無料運用している。みんなぜひ使ってね
このセッションは、PyCon JP 2025のセッションの中で一番楽しそうにお話していて、心から何かを楽しむ人はかっこいいな、と羨ましく思った。海外旅行の記録をまとめるWebサイトは、きっと作っていても楽しいだろうな。
印象に残った発表 - Day2
Day2で行われた各種発表のうち、特に印象に残ったプレゼン
標準ライブラリのlogging、レゴブロックのように組合せてロギングできることを理解しよう!
nikkieさん
まず、このセッションを聞いて反省した。自分は今まですべてのデバッグにprintを使っていて、loggingなんかいらないだろprintと同じやんけ、と思っていた。loggingは運用するうえでとても便利な機能がそろっており、今まで使わなかったことがもったいないと思えるセッションだった。
ロギングを使えば、表示をやめたり、ファイルに出力したり、ログを残した日時を残したりできます。
特に個人開発は自分しかログを見ないので、ログを適当に書いて後悔した経験は何度もしているが、いまだに自分は同じ失敗をしてしまう。
実はnikkieさんもここに関して触れている。ChatGPT登場後に話題になったライブラリをいくつか触ったのですが、どれもロギングの実装が伸びしろ豊富でした。
という発言があり、どうしても軽視されてしまう側面があると指摘している(頭が痛い)。
正直言って、このセッションは1度聞いただけですべてを身につけることは難しそうだと感じた。nikkieさんも難しいと語っており、まだまだ自分はpythonについて知らないことが多いと思い知らされた。
タスクって今どうなってるの?3.14の新機能 asyncio ps と pstree でasyncioのデバッグを
Junya Fukudaさん
asyncio
には、特にpythonの勉強を始めたころお世話になった。
当時はdiscord botを作って遊んでいたが、使用していたwrapperであるdiscord.py
はasyncio
による非同期処理で実装されている。これにより、ユーザーがなりふり構わずfor文などでリクエストを飛ばしまくっても、適切なsleepを設けて429エラーを未然に防いでくれている。この点が初心者にとってはとてもありがたかった。
しかし、asyncio
の今何をどの順番で実行しているのかよくわからないという問題は薄々感じていた。「あれ?さっき送ったリクエスト、やった?」「なんでこの順番なの?先にやった処理が後回しにされてるんだけど!」というトラブルはしばしば起こっており、その度によくわかんないからawait asyncio.sleep(2)
で時間稼ぎ。
こういうものなのかと諦めていた。
最近はFlaskの同期処理しか書いていないので、今回の新機能のお世話になるのは、しばらく先になりそう。ただ便利になっているのは確かなので、覚えておいたら今後役に立つだろうなと思った。特にtask_awaited_by
は処理が重い場合などのデバッグに有効で、これを無料で解説してもらえるのはとてもうれしい。
ちょっと難しかったので、自分のような学生向きのテーマではなかったかもしれないけど...
Streamlit は社内ツールだけじゃない!PoCの速さで実現する"商用品質"の分析SaaSアーキテクチャ
Yuki Furukawaさん
このセッションは題名に驚いた。自分もStreamlitを使った経験はあるものの、webサイト作成ツールにしてはできることが少なかったり、動作が重いと感じており、StreamlitはあくまでPoC用、商用なんて二の次というイメージがあった。これを顧客に提供するイメージが持てなかった。
堅牢性:Streamlitの独自例外をDecoratorで捕捉し、ユーザーフレンドリーな通知と情報漏洩を防止
分析基盤:S3/Kinesis Firehose/Athena/awswranglerによるETL不要のサーバーレス構成
パフォーマンス:効率的なSession StateキャッシュでAthenaコスト削減、レスポンスを高速化
認証:WebSocketのCookie問題をJWT検証Decoratorで解決
品質保証:mypy/pyrightによる型安全担保/Streamlit Testing APIを用いたヘッドレステストをCIに統合
これらを掲げ、Streamlitが実際に顧客されていると聞いたときは驚いた。これらを実現するOSSを作ったら面白そうだな、とも感じた(セキュリティに関してはさっぱりわからないのでまずそこから勉強しないと...)
また、このセッションを通して初めてデコレータのありがたみを理解できた。
デコレータ自体はdiscord.py
に登場しており、ドキュメントに書けと言われたからやっていた。意味は分からなかったが、言われた通りにしたら動いたからそれでよかった。
デコレータを用いてエラーを一括管理するという考え方は目から鱗だった。今まで何度も書いていたtry-exceptが、これを使えば一気に管理しやすくなるかもしれない。
そして、デコレータがあれば認証までできることが説明されている。よく考えたら認証も無く顧客に商品提供するわけにはいかないので、とても大事なことだが、ここに関してはStreamlit側も対応してくれたらうれしいなと思った。積極的な商用利用事例はあまり聞かないので優先順位低いかもしれない...
特に最近は、AI機能の提供によるスピード感のあるPoCを要求されるシーンが増えてきており、今回の内容は強力な手段になると感じた。
また、自分は個人開発でそこそこの規模のFlaskサーバーを運用しているので、もしかしたらデコレータが今後の機能拡張に役立つかもしれないと気づいた。新機能の増加による複雑化した例外処理は課題と感じているので、今後活用してみようと思えた。
Day 2 Lightning Talks
PyCon JP 2025には、当日誰でも参加できるLightning Talks(LT会)がある。
Day1, 2両方にあるが、私はDay2に当選した。
事前情報として、以下の情報を聞いていた。
- PyCon JPはグローバルな場所らしい
- せっかく来たのだから、LTに参加していろんな人と会話のきっかけを作ったほうが楽しい
というわけで、事前に国際化対応という課題についてプレゼンを作成して、応募してみた。
この情報の通り、PyCon JP 2025会場である広島国際会議場に到着するや否や、すぐ近くから英語・韓国語・中国語の3言語が聞こえてきた。本当にここで合ってる?と思ったくらいだった。
終わった後に、自分のLTを聞いていた方とお話をする機会があり、先輩方からたくさんお話を聞かせていただいた。インターン以外で韓国の方とリアルで知り合った経験は、これが初めてかもしれない。半ば海外旅行のように、様々なバックグラウンドを持つ方々とお話するきっかけになったイベントだった。
LT登壇にあたり、裏でトラブルを起こしてしまいました。運営の皆さん、ご迷惑をおかけしました...。
さいごに
来年こそは登壇してみたいけどネタが無いので、来年までに何かしら胸を張ってセッションができるくらいのものを身につけたい。
そして、自分のいた場所がいかに狭い世界か、新しい何かを知ることがどれだけ楽しいことか、今回の参加でよくわかった。
PyCon JP 2025 運営の皆さん、私のしょうもないLTを聞いてくださった皆さん、ありがとうございました。
来年は、社会人1年生として参加したいと思います。