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

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

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

一、針對 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. 獲取項目代碼

# 克隆您的Gitee倉庫
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

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

4. 安裝項目依賴

# 更新pip
pip install --upgrade pip

# 設(shè)置國內(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

寫入內(nèi)容:

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

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

# 臨時生效
source .env

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

6. 測試應(yīng)用運行

# 手動啟動測試
streamlit run app.py --server.port=8501

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

# 若阿里云端口已開放,也可以直接從瀏覽器進入

7. 創(chuàng)建Systemd服務(wù)(后臺運行)

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

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

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

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

[Service]
User=root
WorkingDirectory=/opt/case  # 修改為您的實際路徑
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

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

# 設(shè)置開機自啟
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)用配置:

# 測試配置
sudo nginx -t

# 重啟Nginx
sudo systemctl restart nginx

# 設(shè)置開機自啟
sudo systemctl enable nginx

9. 阿里云安全組配置

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

10. 域名配置

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

11. 測試訪問

瀏覽器訪問:http://yourdomain.com

12.維護與管理

第一步:更新項目代碼

1. 拉取最新代碼

# 進入項目目錄
cd /root/case

# 切換到開發(fā)分支(假設(shè)您的開發(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

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

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

二、部署過程遇到的問題記錄

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

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

# 進入項目目錄
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 中測試
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 中測試
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 中測試
python -c "import fitz; print('fitz version:', fitz.__doc__.split('\n')[0])"
# 應(yīng)該輸出類似: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 中測試
python -c "import openpyxl; print('openpyxl version:', openpyxl.__version__)"
# 應(yīng)該輸出:openpyxl version: 3.1.2

# 升級 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 編輯器中怎么保存和退出

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

  1. ?編輯完成后?:

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

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

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

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

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

應(yīng)該顯示類似內(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

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

# 設(shè)置開機自啟
sudo systemctl enable case

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

3.遇到nano: command not found錯誤

安裝nano編輯器

# 安裝 nano
sudo yum install -y nano

# 驗證安裝
nano --version

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

步驟 1:登錄阿里云控制臺

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

  2. 進入 ?控制臺?

步驟 2:找到您的 ECS 實例

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

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

步驟 3:配置安全組

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

  2. 或者,在實例詳情頁,點擊 ?安全組? 標簽頁

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

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

  2. 在 ?入方向? 標簽頁,點擊 ?手動添加?

  3. 填寫規(guī)則:

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

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

    • ?端口范圍?:8501/8501

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

  4. 點擊 ?保存?

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

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

授權(quán)策略

協(xié)議類型

端口范圍

授權(quán)對象

優(yōu)先級

允許

自定義TCP

8501

0.0.0.0/0

1

如果仍然無法訪問?

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

阿里云 ECS 默認沒有啟用防火墻,但如果您手動啟用了,需要檢查:

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

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

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

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

netstat -tuln | grep 8501

應(yīng)該顯示:

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

檢查 3:使用 telnet 測試端口

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

telnet 8xxx25.2 8501

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

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

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

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

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

# 1. 進入項目目錄
cd /root/case

# 2. 檢查當前所在分支
git branch  # 確認您在開發(fā)分支上(如 doc)

# 3. 從遠程拉取最新變更
git fetch --all

# 4. 重置到遠程分支最新狀態(tài)(強制更新)
git reset --hard origin/doc  # 將 doc 替換為您的分支名

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

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

# 1. 進入項目目錄
cd /root/case

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

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

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

總結(jié) 

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

相關(guān)文章

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

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

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

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

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

    Python3中數(shù)據(jù)校驗機制詳解

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

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

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

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

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

    windows下python安裝pip圖文教程

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

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

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

    python閉包和裝飾器你了解嗎

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

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

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

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

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

最新評論

汉沽区| 秦皇岛市| 崇州市| 确山县| 游戏| 侯马市| 怀仁县| 怀安县| 澳门| 翁牛特旗| 静安区| 教育| 格尔木市| 巩留县| 同心县| 丁青县| 砚山县| 盐源县| 商水县| 清水河县| 莎车县| 九龙城区| 龙里县| 依安县| 蒲城县| 莒南县| 离岛区| 宁波市| 永善县| 泰来县| 雷州市| 巴马| 页游| 罗源县| 喜德县| 峨边| 临沂市| 梧州市| 务川| 昆山市| 南开区|