温馨提示×

centos怎样部署python项目

小樊
38
2026-10-09 06:20:12
栏目: 编程语言

下面给你一份在 CentOS 上部署 Python 项目的通用、实战向流程,适用于 CentOS 7 / 8 / Stream,无论是 Web 项目(Flask / Django / FastAPI)还是脚本类项目都适用。


一、基础环境准备

1. 系统更新

sudo yum update -y

2. 安装基础依赖

sudo yum install -y gcc make wget curl git

3. 安装 Python(推荐 3.9+)

CentOS 自带 python2,不建议使用。

方式一:使用系统源(CentOS 8+)

sudo dnf install python3 python3-pip -y

方式二:编译安装(推荐生产环境)

sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel

cd /usr/src
sudo wget https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgz
sudo tar xzf Python-3.9.18.tgz
cd Python-3.9.18
sudo ./configure --enable-optimizations
sudo make altinstall

验证:

python3.9 --version

二、项目部署(核心)

1. 创建项目目录

mkdir -p /opt/myproject
cd /opt/myproject

2. 上传代码

git clone https://github.com/your/project.git .
# 或 scp / rz 上传

3. 创建虚拟环境(强烈推荐)

python3.9 -m venv venv
source venv/bin/activate

4. 安装依赖

pip install --upgrade pip
pip install -r requirements.txt

三、Web 项目运行方式(重点)

✅ 方式一:Gunicorn + Nginx(最常用)

1. 安装 Gunicorn

pip install gunicorn

2. 启动测试

gunicorn app:app -b 0.0.0.0:8000

3. 配置 systemd 开机自启

sudo vim /etc/systemd/system/myproject.service

内容示例:

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

[Service]
User=root
WorkingDirectory=/opt/myproject
ExecStart=/opt/myproject/venv/bin/gunicorn app:app -b 127.0.0.1:8000
Restart=always

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start myproject
sudo systemctl enable myproject

✅ 方式二:Nginx 反向代理

sudo yum install nginx -y
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
sudo systemctl restart nginx

四、防火墙 & 安全

开放端口

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload

禁用 root 运行(推荐)

useradd deploy
chown -R deploy:deploy /opt/myproject

五、生产环境增强(可选)

  • ✅ 使用 supervisor 管理进程
  • ✅ 使用 uvicorn(FastAPI)
  • ✅ HTTPS(Let’s Encrypt)
  • ✅ 日志分割(logrotate)
  • ✅ Docker 部署(更推荐)

六、Docker 部署(简化版)

FROM python:3.9-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["gunicorn", "app:app", "-b", "0.0.0.0:8000"]
docker build -t myproject .
docker run -d -p 8000:8000 myproject

七、常见问题

❓ yum 找不到 python3
→ CentOS 7 需要 EPEL 或编译安装

❓ 端口访问不了
→ 检查防火墙 / 安全组 / 监听地址

❓ gunicorn 启动失败
→ 看日志:journalctl -u myproject


如果你愿意,可以告诉我:

  • CentOS 版本
  • Python 项目类型(Flask / Django / 脚本)
  • 是否要公网访问

我可以直接给你定制部署方案。

0 踩