温馨提示×

ubuntu怎样部署python服务

小樊
47
2026-09-04 14:00:34
栏目: 编程语言

在 Ubuntu 上部署 Python 服务有多种方式,下面从简单到生产级给你一套常见方案和步骤。


一、最基础:直接运行(适合开发/测试)

python3 app.py

缺点:退出终端就停止,不适合生产。


二、使用 systemd(推荐,生产常用)

1. 准备 Python 环境

sudo apt update
sudo apt install python3 python3-pip python3-venv

2. 创建虚拟环境

mkdir /opt/myservice
cd /opt/myservice
python3 -m venv venv
source venv/bin/activate
pip install flask

3. 示例服务(app.py)

from flask import Flask
app = Flask(__name__)

@app.route("/")
def index():
    return "Hello Ubuntu"

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8000)

4. 创建 systemd 服务

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

内容:

[Unit]
Description=My Python Service
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/opt/myservice
ExecStart=/opt/myservice/venv/bin/python app.py
Restart=always

[Install]
WantedBy=multi-user.target

5. 启动服务

sudo systemctl daemon-reexec
sudo systemctl enable myservice
sudo systemctl start myservice

查看状态:

systemctl status myservice

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

1. 安装

pip install gunicorn
sudo apt install nginx

2. 启动 Gunicorn

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

3. 配置 Nginx

sudo nano /etc/nginx/sites-available/myservice
server {
    listen 80;
    server_name your_domain;

    location / {
        proxy_pass http://127.0.0.1:8000;
    }
}
sudo ln -s /etc/nginx/sites-available/myservice /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

四、使用 Docker(现代部署方式)

Dockerfile

FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
docker build -t myservice .
docker run -d -p 8000:8000 myservice

五、后台运行(不推荐但可用)

nohup python3 app.py &

六、常见建议

  • 生产环境:systemd + Gunicorn/Nginx
  • 微服务/云原生:Docker
  • 定时任务:用 cronsystemd timer

如果你告诉我:

  • Python 框架(Flask / FastAPI / Django)
  • 是否对外网开放
  • Ubuntu 版本

我可以给你更精确的部署方案

0