🤖

LinuxにStreamlit入れてみた

2023/02/11に公開

Oracle Linux8

参考ドキュメント

必要なモジュールのインストールと設定

$ yum groupinstall 'development tools' -y && yum install
$ wget openssl-devel bzip2-devel libffi-devel xz-devel -y
$ wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
$ tar xvf Python-3.9.6.tgz
$ cd Python-3.9.6 && ./configure --enable-optimizations
$ make altinstall
$ alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.9 1 && alternatives --set python3 /usr/local/bin/python3.9 && echo "2" | alternatives --config python
$ /usr/local/bin/python3.9 -m pip install --upgrade pip
$ alternatives --install /usr/bin/pip pip /usr/local/bin/pip3.9 1 && alternatives --set pip /usr/local/bin/pip3.9
$ python3 -V && pip -V
$ cd
$ pip3 install streamlit
$ firewall-cmd  --permanent --add-port 8501/tcp
$ firewall-cmd --reload
$ vim app.py
$ streamlit run app.py
$ systemctl stop firewalld
app.py
import streamlit as st
import numpy as np
import pandas as pd

"""
# サンプル
5 x 5の表データを表示する
"""

dataframe = pd.DataFrame(
    np.random.randn(5, 5),
    columns=('col %d' % i for i in range(5)))
st.table(dataframe)

ブラウザで確認してみる

Ubuntu 20.04

$ sudo apt update -y && sudo apt upgrade -y
$ sudo apt install python3-pip -y
$ pip install streamlit
$ vim app.py
app.py
import streamlit as st
import numpy as np
import pandas as pd

"""
# サンプル
5 x 5の表データを表示する
"""

dataframe = pd.DataFrame(
    np.random.randn(5, 5),
    columns=('col %d' % i for i in range(5)))
st.table(dataframe)

Firewallの設定

$ sudo ufw enable
$ sudo ufw allow 8501
$ udo ufw reload
$ sudo reboot

ブラウザで確認してみる

Ubuntuにstreamlitインストールしてみる~Docker編~

公式ドキュメントを参考に実施してみました。

Dockerの設定

$ sudo mkdir app
$ cd app/
$ sudo vim Dockerfile
$ sudo vim requirements.txt
$ sudo vim streamlit_app.py
$ sudo docker build -t streamlit .
$ sudo docker images
$ sudo docker run -p 8501:8501 streamlit

ブラウザで確認してみる

Discussion