温馨提示×

debian如何部署python服务

小樊
41
2026-09-26 09:05:22
栏目: 编程语言

在 Debian 上部署 Python 服务一般有几种常见方式,从简单到生产级逐步演进。下面按常见做法给你一个清晰指南。


一、基础准备

1. 更新系统

sudo apt update
sudo apt upgrade -y

2. 安装 Python(Debian 通常自带)

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

⚠️ 仅适合开发或临时测试,不稳定。


四、使用 systemd 部署(生产推荐)

1. 示例 Python 服务(Flask 示例)

/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)

2. 创建 systemd 服务

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

3. 启动服务

sudo systemctl daemon-reexec
sudo systemctl enable myproject
sudo systemctl start myproject

4. 查看状态

sudo systemctl status myproject
journalctl -u myproject -f

五、使用 Gunicorn + Nginx(Web 服务推荐)

1. 安装 Gunicorn

pip install gunicorn

2. 启动方式

gunicorn -w 4 -b 127.0.0.1:8000 app:app

3. Nginx 反向代理

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

六、容器化部署(Docker,进阶)

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 微服务 / 云部署

如果你能告诉我:

  • 是 Web 服务 / 后台任务 / 定时任务
  • 是否要 公网访问
  • Debian 版本(11 / 12)

我可以给你一套精确可复制的部署方案。

0 踩