最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?+?Streamlit項(xiàng)目部署方案超詳細(xì)教程(非Docker版)

 更新時(shí)間:2025年11月28日 11:26:27   作者:Tizzy?JJ  
Streamlit是一款強(qiáng)大的Python框架,專(zhuān)為機(jī)器學(xué)習(xí)及數(shù)據(jù)可視化打造,這篇文章主要介紹了Python?+?Streamlit項(xiàng)目部署方案(非Docker版)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、針對(duì) Alibaba Cloud Linux/CentOS 系統(tǒng)的完整部署方案

1. 服務(wù)器基礎(chǔ)配置(阿里云ECS)

# 更新系統(tǒng)
sudo yum update -y

# 安裝基礎(chǔ)工具
sudo yum install -y git wget vim python3 python3-pip python3-devel gcc make

# 安裝Streamlit系統(tǒng)依賴
sudo yum install -y libXext libSM libXrender

# 安裝Node.js(用于Streamlit監(jiān)控)
curl -sL https://rpm.nodesource.com/setup_16.x | sudo bash -
sudo yum install -y nodejs

# 安裝Firewalld防火墻(如果未安裝)
sudo yum install -y firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

2. 獲取項(xiàng)目代碼

# 克隆您的Gitee倉(cāng)庫(kù)
git clone https://gitee.com/您的用戶名/case.git
cd case

# 切換到doc分支
git checkout doc

3. 創(chuàng)建Python虛擬環(huán)境

# 安裝虛擬環(huán)境工具
python3 -m pip install virtualenv

# 創(chuàng)建虛擬環(huán)境
python3 -m virtualenv venv

# 激活虛擬環(huán)境
source venv/bin/activate

# 驗(yàn)證環(huán)境(應(yīng)顯示Python 3.x)
python --version

4. 安裝項(xiàng)目依賴

# 更新pip
pip install --upgrade pip

# 設(shè)置國(guó)內(nèi)鏡像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 安裝依賴
pip install -r requirements.txt

# 額外安裝Streamlit(確保版本兼容)
pip install streamlit==1.25.0

5. 配置環(huán)境變量(如有)

創(chuàng)建環(huán)境變量文件:

nano .env

寫(xiě)入內(nèi)容:

export DEEPSEEK_API_KEY="sk-510d447cc2da4ae39a9807d6"
# 添加其他需要設(shè)置的環(huán)境變量

加載環(huán)境變量:

# 臨時(shí)生效
source .env

# 永久生效(添加到shell配置文件)
echo "source /opt/casegenerate/.env" >> ~/.bashrc
source ~/.bashrc

6. 測(cè)試應(yīng)用運(yùn)行

# 手動(dòng)啟動(dòng)測(cè)試
streamlit run app.py --server.port=8501

# 測(cè)試訪問(wèn)(新開(kāi)終端)
curl http://localhost:8501
# 按CTRL+C停止服務(wù)

# 若阿里云端口已開(kāi)放,也可以直接從瀏覽器進(jìn)入

7. 創(chuàng)建Systemd服務(wù)(后臺(tái)運(yùn)行)

創(chuàng)建服務(wù)文件:

sudo nano /etc/systemd/system/case.service

添加以下內(nèi)容,根據(jù)項(xiàng)目實(shí)際路徑調(diào)整:

[Unit]
Description=Case Streamlit App
After=network.target

[Service]
User=root
WorkingDirectory=/opt/case  # 修改為您的實(shí)際路徑
Environment="PATH=/opt/case/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
EnvironmentFile=/opt/case/.env
ExecStart=/opt/case/venv/bin/streamlit run app.py --server.port=8501 --server.headless=true --server.enableCORS=false
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

啟用服務(wù):

# 重新加載服務(wù)配置
sudo systemctl daemon-reload

# 啟動(dòng)服務(wù)
sudo systemctl start case

# 設(shè)置開(kāi)機(jī)自啟
sudo systemctl enable case

# 查看服務(wù)狀態(tài)
sudo systemctl status case

8. 配置Nginx反向代理(可選)

# 安裝Nginx
sudo yum install -y nginx

# 創(chuàng)建配置
sudo nano /etc/nginx/conf.d/case.conf

內(nèi)容:

upstream streamlit_app {
    server 127.0.0.1:8501;
}

server {
    listen 80;
    server_name yourdomain.com; # 替換為您的域名

    access_log /var/log/nginx/case.access.log;
    error_log /var/log/nginx/case.error.log;

    location / {
        proxy_pass http://streamlit_app;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400;
    }
}

應(yīng)用配置:

# 測(cè)試配置
sudo nginx -t

# 重啟Nginx
sudo systemctl restart nginx

# 設(shè)置開(kāi)機(jī)自啟
sudo systemctl enable nginx

9. 阿里云安全組配置

  1. 登錄阿里云控制臺(tái) → ECS → 安全組
  2. 添加規(guī)則:
    • 方向:入方向
    • 協(xié)議類(lèi)型:TCP
    • 端口范圍:80
    • 授權(quán)對(duì)象:0.0.0.0/0
  3. 保存規(guī)則

10. 域名配置

  1. 在域名控制臺(tái)添加A記錄:
    • 記錄類(lèi)型:A
    • 主機(jī)記錄:@ 或子域名
    • 記錄值:服務(wù)器公網(wǎng)IP
  2. TTL:10分鐘

11. 測(cè)試訪問(wèn)

瀏覽器訪問(wèn):http://yourdomain.com

12.維護(hù)與管理

第一步:更新項(xiàng)目代碼

1. 拉取最新代碼

# 進(jìn)入項(xiàng)目目錄
cd /root/case

# 切換到開(kāi)發(fā)分支(假設(shè)您的開(kāi)發(fā)分支是 doc)
git checkout doc

# 拉取最新代碼
git fetch origin
git reset --hard origin/doc
git clean -fd

2、更新依賴,如果有需要

# 激活虛擬環(huán)境
source venv38/bin/activate

# 安裝新依賴
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

第二步:更新環(huán)境變量

方法 1:直接修改服務(wù)文件(推薦)

# 編輯服務(wù)文件
sudo nano /etc/systemd/system/case.service

修改環(huán)境變量保存后執(zhí)行

# 重新加載服務(wù)配置
sudo systemctl daemon-reload

# 重啟服務(wù)使新變量生效
sudo systemctl restart case

方法 2:修改 .env 文件(如果代碼中使用 load_dotenv)

# 編輯 .env 文件
nano /root/case/.env

修改后,重啟服務(wù)

sudo systemctl restart case

第三步:重啟服務(wù)

# 安全重啟服務(wù)
sudo systemctl restart case

# 驗(yàn)證狀態(tài)
sudo systemctl status case

tips:如果環(huán)境變量要更新DEEPSEEK_API_KEY,方法1和方法2任選其一都可以解決,如果同時(shí)使用兩種方法,服務(wù)文件中的環(huán)境變量會(huì)覆蓋.env文件中的變量。建議只使用一種方法。

二、部署過(guò)程遇到的問(wèn)題記錄

1.有些依賴需要額外安裝

激活虛擬環(huán)境并安裝驗(yàn)證:

# 進(jìn)入項(xiàng)目目錄
cd /root/case

# 激活虛擬環(huán)境
source venv/bin/activate

# 1.安裝 aiohttp(使用阿里云鏡像加速)
pip install aiohttp==3.8.6 -i https://mirrors.aliyun.com/pypi/simple/

# 檢查是否安裝成功
pip show aiohttp

# 在 Python 中測(cè)試
python -c "import aiohttp; print(aiohttp.__version__)"
# 應(yīng)該輸出:3.8.6

# 2.安裝 python-dotenv(使用阿里云鏡像加速)
pip install python-dotenv==1.0.0 -i https://mirrors.aliyun.com/pypi/simple/


# 檢查是否安裝成功
pip show python-dotenv

# 在 Python 中測(cè)試
python -c "from dotenv import load_dotenv; print('dotenv installed successfully')"

# 3.安裝 PyMuPDF(包含 fitz 模塊)
pip install PyMuPDF==1.23.21 -i https://mirrors.aliyun.com/pypi/simple/

# 檢查是否安裝成功
pip show PyMuPDF

# 在 Python 中測(cè)試
python -c "import fitz; print('fitz version:', fitz.__doc__.split('\n')[0])"
# 應(yīng)該輸出類(lèi)似:fitz version: PyMuPDF 1.23.21: Python bindings for MuPDF's library

# 4.安裝 openpyxl(使用阿里云鏡像加速)
pip install openpyxl==3.1.2 -i https://mirrors.aliyun.com/pypi/simple/

# 檢查是否安裝成功
pip show openpyxl

# 在 Python 中測(cè)試
python -c "import openpyxl; print('openpyxl version:', openpyxl.__version__)"
# 應(yīng)該輸出:openpyxl version: 3.1.2

# 升級(jí) streamlit
pip install streamlit==1.25.0 -i https://mirrors.aliyun.com/pypi/simple/

streamlit --version
# 應(yīng)該輸出:Streamlit, version 1.25.0

2.在 nano 編輯器中怎么保存和退出

當(dāng)您使用 sudo nano /etc/systemd/system/case.service 編輯文件后,以下是保存并退出的詳細(xì)步驟:

  1. ?編輯完成后?:

    • 使用方向鍵在文件中移動(dòng)
    • 確保所有內(nèi)容正確無(wú)誤
  2. ?保存文件?:

    • 按下 Ctrl + O(按住 Ctrl 鍵,然后按 O 鍵)
    • 屏幕底部會(huì)顯示:File Name to Write: /etc/systemd/system/case.service
    • ?按 Enter 鍵確認(rèn)保存?
  3. ?退出編輯器?:

    • 按下 Ctrl + X(按住 Ctrl 鍵,然后按 X 鍵)
    • 如果文件已修改但未保存,會(huì)詢問(wèn)是否保存:

退出編輯器后,驗(yàn)證文件內(nèi)容:

sudo cat /etc/systemd/system/case.service

應(yīng)該顯示類(lèi)似內(nèi)容:

[Unit]
Description=Case Streamlit App
After=network.target

[Service]
User=root
WorkingDirectory=/root/case
Environment="PATH=/root/case/venv38/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
Environment="DEEPSEEK_API_KEY=sk-510d447cc2da9807d6"
ExecStart=/root/case/venv38/bin/streamlit run app.py --server.port=8501 --server.address=0.0.0.0
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

保存文件后,執(zhí)行以下命令使服務(wù)生效:

# 重新加載服務(wù)配置
sudo systemctl daemon-reload

# 啟動(dòng)服務(wù)
sudo systemctl start case

# 設(shè)置開(kāi)機(jī)自啟
sudo systemctl enable case

# 檢查狀態(tài)
sudo systemctl status case

3.遇到nano: command not found錯(cuò)誤

安裝nano編輯器

# 安裝 nano
sudo yum install -y nano

# 驗(yàn)證安裝
nano --version

4. http://xxx25.2:8501訪問(wèn)不了,阿里云要怎么添加8501端口

步驟 1:登錄阿里云控制臺(tái)

  1. 訪問(wèn) 阿里云官網(wǎng) 并登錄

  2. 進(jìn)入 ?控制臺(tái)?

步驟 2:找到您的 ECS 實(shí)例

  1. 在控制臺(tái)首頁(yè),點(diǎn)擊 ?產(chǎn)品與服務(wù)? > ?云計(jì)算基礎(chǔ)服務(wù)? > ?云服務(wù)器 ECS?

  2. 在實(shí)例列表中找到您的服務(wù)器(如 iZ7xvyay73qoZ

步驟 3:配置安全組

  1. 在實(shí)例列表中,找到您的實(shí)例,點(diǎn)擊右側(cè)的 ?更多? > ?網(wǎng)絡(luò)和安全組? > ?安全組配置?

  2. 或者,在實(shí)例詳情頁(yè),點(diǎn)擊 ?安全組? 標(biāo)簽頁(yè)

步驟 4:添加安全組規(guī)則

  1. 在安全組規(guī)則頁(yè)面,點(diǎn)擊 ?配置規(guī)則?

  2. 在 ?入方向? 標(biāo)簽頁(yè),點(diǎn)擊 ?手動(dòng)添加?

  3. 填寫(xiě)規(guī)則:

    • ?授權(quán)策略?:允許

    • ?協(xié)議類(lèi)型?:自定義 TCP

    • ?端口范圍?:8501/8501

    • ?授權(quán)對(duì)象?:0.0.0.0/0(表示允許所有IP訪問(wèn))

  4. 點(diǎn)擊 ?保存?

步驟 5:驗(yàn)證安全組規(guī)則

在安全組規(guī)則列表中,您應(yīng)該能看到一條類(lèi)似這樣的規(guī)則:

授權(quán)策略

協(xié)議類(lèi)型

端口范圍

授權(quán)對(duì)象

優(yōu)先級(jí)

允許

自定義TCP

8501

0.0.0.0/0

1

如果仍然無(wú)法訪問(wèn)?

檢查 1:服務(wù)器防火墻

阿里云 ECS 默認(rèn)沒(méi)有啟用防火墻,但如果您手動(dòng)啟用了,需要檢查:

# 查看防火墻狀態(tài)
sudo systemctl status firewalld

# 如果防火墻開(kāi)啟,添加端口
sudo firewall-cmd --zone=public --add-port=8501/tcp --permanent
sudo firewall-cmd --reload

檢查 2:端口監(jiān)聽(tīng)狀態(tài)

在服務(wù)器上執(zhí)行:

netstat -tuln | grep 8501

應(yīng)該顯示:

tcp6       0      0 :::8501                 :::*                    LISTEN

檢查 3:使用 telnet 測(cè)試端口

在您的本地電腦上(不是服務(wù)器)執(zhí)行:

telnet 8xxx25.2 8501

如果端口開(kāi)放,應(yīng)該看到: 

Trying 8.1xxx5.2...
Connected to 8.xxx.2.
Escape character is '^]'.

5.在服務(wù)器上更新開(kāi)發(fā)分支的新代碼

 在服務(wù)器上更新開(kāi)發(fā)分支的新代碼,分為兩種情況操作

情況1:已在開(kāi)發(fā)分支但需要更新

# 1. 進(jìn)入項(xiàng)目目錄
cd /root/case

# 2. 檢查當(dāng)前所在分支
git branch  # 確認(rèn)您在開(kāi)發(fā)分支上(如 doc)

# 3. 從遠(yuǎn)程拉取最新變更
git fetch --all

# 4. 重置到遠(yuǎn)程分支最新?tīng)顟B(tài)(強(qiáng)制更新)
git reset --hard origin/doc  # 將 doc 替換為您的分支名

# 5. 清理未被跟蹤的文件
git clean -fd

情況2:需要切換到其他開(kāi)發(fā)分支

# 1. 進(jìn)入項(xiàng)目目錄
cd /root/case

# 2. 查看所有可用分支
git branch -a

# 3. 切換到新的開(kāi)發(fā)分支
git checkout -b feature/new-feature origin/feature/new-feature

# 4. 或者強(qiáng)制切換到已存在的分支
git checkout -f doc

總結(jié) 

到此這篇關(guān)于Python + Streamlit項(xiàng)目部署方案(非Docker版)的文章就介紹到這了,更多相關(guān)Python Streamlit項(xiàng)目部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python獲取Redis所有Key以及內(nèi)容的方法

    Python獲取Redis所有Key以及內(nèi)容的方法

    今天小編就為大家分享一篇Python獲取Redis所有Key以及內(nèi)容的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Java實(shí)現(xiàn)的執(zhí)行python腳本工具類(lèi)示例【使用jython.jar】

    Java實(shí)現(xiàn)的執(zhí)行python腳本工具類(lèi)示例【使用jython.jar】

    這篇文章主要介紹了Java實(shí)現(xiàn)的執(zhí)行python腳本工具類(lèi),結(jié)合實(shí)例形式分析了java使用jython.jar執(zhí)行Python腳本的具體操作技巧,需要的朋友可以參考下
    2018-03-03
  • Python3中數(shù)據(jù)校驗(yàn)機(jī)制詳解

    Python3中數(shù)據(jù)校驗(yàn)機(jī)制詳解

    在日常編碼環(huán)節(jié),很大比例的錯(cuò)誤處理工作和參數(shù)的輸入有關(guān),所以這篇文章主要來(lái)和大家介紹一下Python3中的數(shù)據(jù)校驗(yàn)機(jī)制,感興趣的可以了解下
    2024-04-04
  • 淺談python 里面的單下劃線與雙下劃線的區(qū)別

    淺談python 里面的單下劃線與雙下劃線的區(qū)別

    這篇文章主要介紹了淺談python 里面的單下劃線與雙下劃線的區(qū)別,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 淺談python下tiff圖像的讀取和保存方法

    淺談python下tiff圖像的讀取和保存方法

    今天小編就為大家分享一篇淺談python下tiff圖像的讀取和保存方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • windows下python安裝pip圖文教程

    windows下python安裝pip圖文教程

    這篇文章主要為大家詳細(xì)介紹了windows下python安裝pip圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • python如何實(shí)現(xiàn)控制電腦音量

    python如何實(shí)現(xiàn)控制電腦音量

    這篇文章主要介紹了python如何實(shí)現(xiàn)控制電腦音量問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python閉包和裝飾器你了解嗎

    python閉包和裝飾器你了解嗎

    這篇文章主要為大家詳細(xì)介紹了Python的閉包和裝飾器,何為閉包?何為裝飾器?感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-08-08
  • Python+PIL實(shí)現(xiàn)支付寶AR紅包

    Python+PIL實(shí)現(xiàn)支付寶AR紅包

    這篇文章主要為大家詳細(xì)介紹了Python+PIL實(shí)現(xiàn)支付寶AR紅包,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python PyAutoGUI超詳細(xì)實(shí)戰(zhàn)教程 附完整教學(xué)代碼

    Python PyAutoGUI超詳細(xì)實(shí)戰(zhàn)教程 附完整教學(xué)代碼

    本文將從環(huán)境搭建、基礎(chǔ)配置、鼠標(biāo)自動(dòng)化、鍵盤(pán)自動(dòng)化、屏幕操作、高級(jí)功能、實(shí)戰(zhàn)案例七個(gè)維度展開(kāi),搭配可直接運(yùn)行的教學(xué)代碼,覆蓋新手入門(mén)到實(shí)戰(zhàn)應(yīng)用的全部核心知識(shí)點(diǎn),對(duì)Python PyAutoGUI 相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧
    2026-02-02

最新評(píng)論

天峻县| 富川| 且末县| 保亭| 错那县| 江津市| 剑阁县| 宁波市| 称多县| 信阳市| 开化县| 芮城县| 承德县| 孝昌县| 舞钢市| 淳化县| 孝感市| 台南市| 吴桥县| 垦利县| 沈丘县| 射洪县| 高尔夫| 绥宁县| 施甸县| 安吉县| 肃北| 临颍县| 屏边| 沈丘县| 周口市| 永顺县| 景宁| 紫云| 教育| 鸡西市| 蓬安县| 合山市| 萨迦县| 宜州市| 沂源县|