centos

Python在CentOS上如何部署

小樊
34
2025-07-04 20:53:33
栏目: 编程语言

在CentOS上部署Python环境可以通过以下步骤完成:

1. 更新系统

首先,确保你的CentOS系统是最新的。

sudo yum update -y

2. 安装依赖包

安装编译Python所需的依赖包。

sudo yum groupinstall -y "Development Tools"
sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel tk-devel gcc make

3. 下载并编译Python

从Python官方网站下载你需要的Python版本,并进行编译安装。

下载Python源码

wget https://www.python.org/ftp/python/3.x.x/Python-3.x.x.tgz

3.x.x替换为你想要安装的Python版本号。

解压源码包

tar xvf Python-3.x.x.tgz
cd Python-3.x.x

配置、编译并安装Python

./configure --prefix=/usr/local/python3
make -j 8  # 使用8个线程进行编译,可以根据你的CPU核心数调整
sudo make altinstall  # 使用altinstall避免覆盖系统默认的Python版本

4. 验证安装

安装完成后,验证Python是否正确安装。

python3.x --version  # 将3.x替换为你安装的版本号

5. 创建虚拟环境(可选)

使用venv模块创建一个虚拟环境,以便更好地管理项目依赖。

sudo yum install -y python3-venv
python3.x -m venv myenv  # 将3.x替换为你安装的版本号
source myenv/bin/activate  # 激活虚拟环境

6. 安装项目依赖

在虚拟环境中安装项目所需的Python包。

pip install -r requirements.txt  # 如果你有requirements.txt文件

7. 配置systemd服务(可选)

如果你打算将Python脚本作为服务运行,可以使用systemd来管理。

创建服务文件

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

在文件中添加以下内容:

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

[Service]
User=your_username
Group=your_groupname
WorkingDirectory=/path/to/your/script
ExecStart=/path/to/your/script/start_script.sh

[Install]
WantedBy=multi-user.target

重新加载systemd配置

sudo systemctl daemon-reload

启动服务

sudo systemctl start my_python_script.service

设置服务开机自启动

sudo systemctl enable my_python_script.service

8. 配置Web服务器(可选)

如果你打算部署Web应用,可以使用Nginx和Gunicorn。

安装Nginx

sudo yum install -y epel-release
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx

安装Gunicorn

在虚拟环境中安装Gunicorn。

pip install gunicorn

配置Gunicorn

创建一个Gunicorn配置文件gunicorn.conf.py

bind = '127.0.0.1:8000'
workers = 3

启动Gunicorn

gunicorn -c gunicorn.conf.py myapp:app  # 将myapp替换为你的应用模块名,app替换为你的Flask应用实例名

配置Nginx反向代理

编辑Nginx配置文件/etc/nginx/conf.d/default.conf

server {
    listen 80;
    server_name your_domain.com;
    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

重启Nginx

sudo systemctl restart nginx

9. 配置防火墙(可选)

确保防火墙允许HTTP和HTTPS流量。

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

通过以上步骤,你可以在CentOS上成功部署Python环境,并根据需要进行Web应用的部署。

0
看了该问题的人还看了