エンジニア夫婦の技術日記

頭痛予報アプリ


2025年6月1日
Posted by 
向日葵

こんにちは。向日葵です。

新しい取り組みとしてstreamlitの勉強を始めたいと思い教材を基に勉強を行い、躓いた点などを記事にしていけたらと思います。

背景

今回新しい取り組みとしてstreamlitの勉強を始めることにしました。TODO作成ツールも設計中で進展がないなか、新しい取り組みを始めたのは以下の理由からです。

  • 以前からPythonの勉強をしたい気持ちがあったこと
  • 頭痛予報アプリの作成を思いついたこと

結構昔からPythonを勉強したい気持ちがありました。しかしその時にはモバイル開発やTODO作成ツールに着手しており、作りたいアプリも思いつかなかったことから後回しにしていました。今回頭痛のデータを蓄積して天気の情報(気圧、気温など)から頭痛を予測するアプリが作れないかと考えました。すでにそういったアプリが存在することは知っていますが、私のなかであまりしっくりくるものがなく、であれば自分で作ってしまえばいいのではないかと考えたわけです。

Pythonでどんなことができるのか

Pythonは様々な種類のアプリが開発できるようです。

  • ソフトウェア・アプリ開発
    • デスクトップ(GUIツールなど)
    • webアプリ(DjangoやFlaskなど)
  • データ分析
    • データ解析(NumPy、Pandasなど)
    • グラフ・データの可視化(matplotlibなど)
  • AI開発
    • 機械学習(scikit-learnなど)
  • ゲーム開発
    • 2Dゲーム(Pygameなど)

今回の最終目標は頭痛予報アプリを作ることです。つまり、データ分析になります。そのためデータ分析やデータの可視化に強いフレームワークを使えると嬉しいです。最終的にはこちらのサイトを参考にし、streamlitを使うことにしました。

streamlitの特徴

  • PythonだけでWebアプリが作れる(HTML/CSSほぼ不要)
  • 再実行・自動更新されるインタラクティブUI※1
  • 1ファイルですぐ動く(streamlit run xxx.pyだけ)
  • データ可視化に強い
  • 状態の管理を自動でやってくれる(裏でセッションを勝手に保持)

※1 streamlitでは、ボタンのクリックなどユーザーの操作があるたびに、Pythonスクリプト全体が最初から再実行されます。
  これは、必要な部分だけを実行するJavaScriptなどの仕組みとは異なり、アプリ全体を毎回再評価するという設計思想によるものです。

streamlitのインストール

それでは早速streamlitを触っていきたいと思います。そのためにインストールを行います。streamlitをインストールする前にPythonがインストールされていることを確認してください。私は3.11.0をインストールしています。

streamlitは以下のコマンドでインストールできます。

pip install streamlit

インストールを行ったところ以下のエラーが発生しました。

WARNING: Failed to write executable – trying to use .deleteme logic
ERROR: Could not install packages due to an OSError: [WinError 2] 指定されたファイルが見つかりません。: ‘C:\Python311\Scripts\watchmedo.exe’ -> ‘C:\Python311\Scripts\watchmedo.exe.deleteme’

こちらの記事と同じようにPowerShellを管理者権限で起動し再度コマンドを実行したところ、無事インストールできました。

おわりに

今回は新しい取り組みについて紹介させていただきました。次回からは実際に手を動かしていくと思うので記事にできそうなことがあれば紹介させていただければと思います。

コメントを書く