Python 專案
Python 專案用於部署 Django、Flask、FastAPI 等 Python Web 應用。
前置要求
- 安裝 Python 執行環境:應用 > 執行環境 > Python
- 專案原始碼
部署步驟
- 上傳專案程式碼到伺服器
- 建立虛擬環境並安裝依賴:
bash
cd /opt/ace/project/myapp
python3.13 -m venv venv
source venv/bin/activate
pip install -r requirements.txt- 建立專案:
- 專案名:
myapp - 專案目錄:
/opt/ace/project/myapp - 啟動命令:見下方範例
- 專案名:
- 開啟 反向代理
啟動命令範例
Django
bash
# 開發伺服器(不推薦生產使用)
/opt/ace/project/myapp/venv/bin/python manage.py runserver 0.0.0.0:8000
# 使用 Gunicorn(推薦)
/opt/ace/project/myapp/venv/bin/gunicorn myproject.wsgi:application -b 0.0.0.0:8000 -w 4
# 使用 uWSGI
/opt/ace/project/myapp/venv/bin/uwsgi --http 0.0.0.0:8000 --module myproject.wsgiFlask
bash
# 開發伺服器(不推薦生產使用)
/opt/ace/project/myapp/venv/bin/python app.py
# 使用 Gunicorn(推薦)
/opt/ace/project/myapp/venv/bin/gunicorn app:app -b 0.0.0.0:8000 -w 4FastAPI
bash
# 使用 Uvicorn
/opt/ace/project/myapp/venv/bin/uvicorn main:app --host 0.0.0.0 --port 8000
# 使用 Gunicorn + Uvicorn Workers(推薦)
/opt/ace/project/myapp/venv/bin/gunicorn main:app -b 0.0.0.0:8000 -w 4 -k uvicorn.workers.UvicornWorker常用框架配置
Django 生產配置
settings.py:
python
DEBUG = False
ALLOWED_HOSTS = ['your-domain.com']
STATIC_ROOT = '/opt/ace/project/myapp/static/'收集靜態檔案:
bash
/opt/ace/project/myapp/venv/bin/python manage.py collectstaticFastAPI 範例
python
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}Gunicorn 配置
建立 gunicorn.conf.py:
python
bind = "0.0.0.0:8000"
workers = 4
worker_class = "sync" # 或 "uvicorn.workers.UvicornWorker" for FastAPI
timeout = 30
keepalive = 2啟動命令:
bash
/opt/ace/project/myapp/venv/bin/gunicorn -c gunicorn.conf.py myproject.wsgi:application虛擬環境
強烈建議使用虛擬環境隔離專案依賴:
bash
# 建立虛擬環境
python3.13 -m venv venv
# 啟用虛擬環境
source venv/bin/activate
# 安裝依賴
pip install -r requirements.txt
# 退出虛擬環境
deactivate常見問題
依賴安裝失敗
某些套件需要編譯,確保安裝了必要的系統依賴:
bash
# AlmaLinux/Rocky Linux
yum install gcc python3-devel
# Ubuntu/Debian
apt install gcc python3-dev靜態檔案 404
Django 生產環境需要配置 Nginx 直接提供靜態檔案,或使用 WhiteNoise。
資料庫連線問題
檢查資料庫配置和網路連線,確保資料庫服務正常執行。
