Introduction
Streamlit is the fastest way to build and share data apps.
It is an open-source python library designed to create custom web applications for machine learning and data science.
This guide will explain how to run a Streamlit on a CentOS 8.
Just follow the steps below:
Update Python
We will use Python source code to install the latest version of Python3.
- Install the required dependencies to update the Python source code.
yum groupinstall -y 'development tools'
yum install -y openssl-devel libffi-devel xz-devel wget bzip2-devel
- Download the latest Python3.
[root@unixcop ~]# wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz
--2021-09-29 08:19:21-- https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz
Resolving www.python.org (www.python.org)... 199.232.80.223, 2a04:4e42:54::223
Connecting to www.python.org (www.python.org)|199.232.80.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 25755357 (25M) [application/octet-stream]
Saving to: 'Python-3.9.7.tgz'
Python-3.9.7.tgz 100%[===================>] 24.56M 522KB/s in 48s
2021-09-29 08:20:10 (520 KB/s) - 'Python-3.9.7.tgz' saved [25755357/25755357]
[root@unixcop ~]#
- Extract the downloaded tgz.
tar xvf Python-3.9.7.tgz
- Change directory to Python-3.9.7 and Compile the python source code.
cd Python-3.9.7
./configure --enable-optimizations
- Install Python 3.9.7.
make altinstall
- Set Python 3.9.7 as default version.
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
Update pip
- Update pip based on your updating Python to the latest version.
[root@unixcop Python-3.9.7]# /usr/local/bin/python3.9 -m pip install --upgrade pip
Requirement already satisfied: pip in /usr/local/lib/python3.9/site-packages (21.2.3)
Collecting pip
Downloading pip-21.2.4-py3-none-any.whl (1.6 MB)
|████████████████████████████████| 1.6 MB 553 kB/s
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 21.2.3
Uninstalling pip-21.2.3:
Successfully uninstalled pip-21.2.3
Successfully installed pip-21.2.4
- Set pip from Python 3.9. as default pip.
alternatives --install /usr/bin/pip pip /usr/local/bin/pip3.9 1
alternatives --set pip /usr/local/bin/pip3.9
- Check the current version of Python and pip.
[root@unixcop Python-3.9.7]# python --version
Python 3.9.7
[root@unixcop Python-3.9.7]# pip --version
pip 21.2.4 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)
[root@unixcop Python-3.9.7]#
Install Streamlit
- Using pip install the Streamlit.
pip install streamlit
![](http://unixcop.com/wp-content/uploads/2021/09/1-19.png)
Configure and Run Streamlit
You can run the streamlit with two methods:
Method (1): Run Streamlit with the Default Port
Streamlit runs on port 8501 by default. so that you need to allow it on the firewall.
firewall-cmd --permanent --add-port 8501/tcp
firewall-cmd --reload
When you run Streamlit on SSH Session. the Streamlit process will close when you exit the SSH Session.
So that run Streamlit using tmux which is a terminal multiplexer that allow you to run the Streamlit in the background.
- Run the command below to create the TMUX session for streamlit:
tmux new -s StreamlitSession
- Run your main python script. so run the following:
streamlit run example.py
Note: Change example.py to your python script file name.
- Here we go, run Streamlit for the first time. then kindly enter your email address. or you can skip that.
- To display your web application, Open your browser then visit http://IP_address:8501
Method (2): Run Streamlit on HTTP Port
- Allow http port=80 on the firewall:
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
- Run your python script with Streamlit:
streamlit run example.py --server.port 80
Note: Change example.py to your python script file name.
- To display your web application, Visit http://IP_address
Deploy Streamlit app
- To deploy Streamlit app, first we need to create one python file so run:
vim main.py
- Add following in the main.py file:
import streamlit as st
st.text_input("Your name", key="name")
st.session_state.name
- Save and exit.
- Now, deploy the app on web using following command:
streamlit run main.py --server.port 80
![](http://unixcop.com/wp-content/uploads/2021/09/4-6.png)
![](http://unixcop.com/wp-content/uploads/2021/09/1-20.png)
![](http://unixcop.com/wp-content/uploads/2021/09/2-9.png)
![](http://unixcop.com/wp-content/uploads/2021/09/3-6.png)
Conclusion
In this article, we illustrated how to install Streamlit on CentOS 8.
We have successfully completed with the installation process and also we have deployed our first app.