Pythonの仮想環境でstreamlitを使う方法まとめ

2021-03-14 / Last Update : 2021-03-14
Main Image

目次

こんにちは。

今日はpythonでstreamlitを使ってみようと思います。

streamlitって何だ

python上で扱えるpandasのDataFrameやmatplotlibで出力したグラフをブラウザで見ることができるツールです。

ブラウザで表示できるだけでなく、ボタンなどのインターフェースで対話的に操作して見た目や集計内容を変えたりできます。

つまりウェブブラウザで動くアプリケーションが簡単に作ることができます。

仮想環境の目的

ローカル環境にあれこれのパッケージを次々と入れていくと、環境がごちゃごちゃになりすぎてよくわからなくなります。

すると、pip installしたのにimportできないとか、コマンドが実行できない(Command not found)とかいうエラー状況に陥ってしまいます。

そうならないために、仮想環境を作り、その中にパッケージをインストールします。

デバッグ環境

ちなみに私が今回使用しているMacの環境です。

  • Mac OS : Catalina 10.15.4
  • Terminal : zsh 5.7.1
  • Python3 version : 3.8.2

やってみる

今回使うプロジェクトのフォルダをprojとして、ターミナルで実行していきます。

プロジェクトディレクトリに移動

cd proj

仮想環境の作成

python3 -m venv venv

ここではvenvという名前のvenvを作ってるので、2回venvが出てきます。

すると、venvというフォルダができて、なかに色々できてます。新しくインストールするパッケージもこの中に入れていきます。

仮想環境に入る

source venv/bin/activate

venvがactivateすると、ターミナルの頭に(venv)とか付きます。

パッケージインストール

pip install streamlit

数分くらい時間がかかります。Successfully ...とか出てたら成功です。

仮想環境の終了

終了したいときは以下のコマンドを打てば、仮想環境から出て(venv)がなくなるはずです。

deactivate

また入りたいときは上記の source コマンドを実行します。

streamlitの使い方

いよいよ本題で、streamlitの使い方です。

まずはデフォルトで用意されているHello worldが動くことを確認しましょう。

以下、仮想環境に入ってターミナルが(venv)の状態で実行します。

Hello World

streamlit hello

もし仮想環境を作らない場合、streamlit のコマンドが見つからないエラー command not foundとか言われる可能性があります。

環境変数PATHの見直しとか面倒なのでおとなしくvenv作りましょう。

上のHelloコマンドを実行すると、何やらLocal Host:8501が立ち上がり、自動的にブラウザが(おそらく)起動して、Helloと表示されるページに飛ばされると思います。

これで成功です。

Pythonファイルを作ってみる。

試しにDataFrameを表示するアプリtest.pyを作ってみます。

import numpy as np
import pandas as pd
import streamlit as st

array = np.random.randn(10,2) * [100, 100]
df = pd.DataFrame(array,columns=['A', 'B'])

st.title('Random Numbers')
st.table(df)

st.tableでDataFrameのテーブルを表示できます。

streamlitの実行

streamlit run ${filename.py}

先程つくったファイルはtest.pyなので、streamlit run test.pyで実行できます。

以下のようなページが生成されます。

streamlit dataframe

シンプルでカッコいいですね。

streamlitの終了

ターミナルでCtrl + Cを押すと、Local hostが停止して終了できます。

ブラウザの方は適当に閉じてOKです。

まとめ

というわけでPythonで仮想環境の準備と、streamlitの実行・終了までの方法をまとめてみました。

より詳しいstreamlitの使い方は公式ドキュメントからどうぞ。

けっこう色々できそうなので、遊び甲斐がありそうです!

Welcome to Streamlit【公式】

ads【オススメ】未経験からプログラマーへ転職できる【GEEK JOBキャンプ】
▼ Amazonオススメ商品
ディスプレイライト デスクライト BenQ ScreenBar モニター掛け式
スマートLEDフロアライト 間接照明 Alexa/Google Home対応

Author

Penta

都内で働くITエンジニアもどき。好きなものは音楽・健康・貯金・シンプルでミニマルな暮らし。AWSクラウドやデータサイエンスを勉強中。学んだことや体験談をのんびり書いてます。TypeScript / Next.js / React / Python / AWS / インデックス投資 / 高配当株投資 More profile

Location : Tokyo, JPN

Contact : Twitter@penguinchord

Recommended Posts

Copy Right / Penguin Chord, ペンギンコード (penguinchord.com) 2022 / Twitter@penguinchord