溫馨提示×

Ubuntu Python部署流程解析

小樊
40
2025-09-06 19:29:33
欄目: 編程語言

在Ubuntu上部署Python應用的核心流程如下,結合搜索資源中的關鍵步驟解析:

一、環境準備

  1. 安裝Python和pip
    更新系統并安裝Python 3、pip及虛擬環境工具:

    sudo apt update  
    sudo apt install python3 python3-pip python3-venv  # 安裝虛擬環境模塊  
    
  2. 創建虛擬環境(推薦)
    隔離項目依賴,避免全局沖突:

    python3 -m venv myenv  # 創建虛擬環境  
    source myenv/bin/activate  # 激活環境  
    

二、部署應用

方案1:直接運行(適合開發測試)

  1. 安裝依賴
    在虛擬環境中通過requirements.txt安裝依賴:
    pip install -r requirements.txt  # 依賴文件需包含項目所需庫  
    
  2. 運行應用
    • 腳本類應用:python app.py
    • Web框架(如Flask/Django):
      • Flask:python app.py(默認監聽127.0.0.1:5000
      • Django:python manage.py runserver

方案2:生產環境部署(推薦Gunicorn+Nginx)

  1. 安裝Gunicorn(WSGI服務器)
    替代Python內置服務器,支持多進程:
    pip install gunicorn  
    gunicorn -w 4 -b 127.0.0.1:8000 app:app  # 綁定到本地8000端口,4個工作進程  
    
  2. 配置Nginx(反向代理)
    • 安裝Nginx:sudo apt install nginx
    • 編輯配置文件(如/etc/nginx/sites-available/yourapp):
      server {  
          listen 80;  
          server_name your_domain_or_ip;  
          location / {  
              proxy_pass http://127.0.0.1:8000;  # 轉發請求到Gunicorn  
              proxy_set_header Host $host;  
          }  
      }  
      
    • 啟用配置并重啟Nginx:
      sudo ln -s /etc/nginx/sites-available/yourapp /etc/nginx/sites-enabled  
      sudo nginx -t && sudo systemctl restart nginx  # 測試配置并重啟  
      
      

三、后臺運行與服務管理

  1. 使用Systemd設置開機自啟
    創建服務文件(如/etc/systemd/system/yourapp.service):
    [Unit]  
    Description=Python App Service  
    After=network.target  
    
    [Service]  
    User=your_username  
    WorkingDirectory=/path/to/app  
    Environment="PATH=/path/to/app/venv/bin"  
    ExecStart=/path/to/app/venv/bin/gunicorn --workers 3 --bind unix:/path/to/app/app.sock wsgi:app  
    Restart=always  
    
    [Install]  
    WantedBy=multi-user.target  
    
    啟用并啟動服務:
    sudo systemctl daemon-reload  
    sudo systemctl start yourapp  
    sudo systemctl enable yourapp  # 開機自啟  
    
    

四、可選步驟

  • 配置防火墻:開放HTTP/HTTPS端口(如sudo ufw allow 80)。
  • 使用Docker部署:通過Dockerfile打包環境,確保一致性(需安裝Docker并編寫Dockerfile)。

關鍵資源參考

  • 虛擬環境與依賴管理:
  • Gunicorn+Nginx配置:
  • Systemd服務管理:

根據項目類型(如Web應用、腳本工具)選擇對應方案,生產環境建議優先使用Gunicorn+Nginx組合,兼顧性能與穩定性。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女