在 Debian 上部署 Python 服务一般有几种常见方式,从简单到生产级逐步演进。下面按常见做法给你一个清晰指南。
sudo apt update
sudo apt upgrade -y
python3 --version
如未安装:
sudo apt install python3 python3-pip python3-venv -y
mkdir myproject
cd myproject
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 app.py
⚠️ 仅适合开发或临时测试,不稳定。
/opt/myproject/app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "Hello Debian"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)
sudo nano /etc/systemd/system/myproject.service
内容示例:
[Unit]
Description=Python Service
After=network.target
[Service]
User=www-data
WorkingDirectory=/opt/myproject
ExecStart=/opt/myproject/venv/bin/python app.py
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reexec
sudo systemctl enable myproject
sudo systemctl start myproject
sudo systemctl status myproject
journalctl -u myproject -f
pip install gunicorn
gunicorn -w 4 -b 127.0.0.1:8000 app:app
sudo apt install nginx -y
/etc/nginx/sites-available/myproject
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
}
}
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
docker build -t myproject .
docker run -d -p 8000:8000 myproject
| 方式 | 适用场景 |
|---|---|
| python app.py | 测试 |
| systemd | 后台服务 |
| Gunicorn + Nginx | Web API |
| Docker | 微服务 / 云部署 |
如果你能告诉我:
我可以给你一套精确可复制的部署方案。