一、系统准备:更新系统并安装基础依赖
在CentOS上部署Python前,需先确保系统为最新状态,并安装编译Python源码或使用yum安装所需的依赖包。
# 更新系统软件包
sudo yum update -y
# 安装开发工具组(包含gcc、make等编译工具)
sudo yum groupinstall -y "Development Tools"
# 安装Python编译及运行所需的依赖库
sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel wget
二、安装Python:选择包管理器或源码编译
若无需特定Python版本,可直接通过yum安装Python 3(CentOS 7及以上默认包含Python 3):
# 安装Python 3(以CentOS 7/8默认仓库版本为例)
sudo yum install -y python3
# 验证安装(检查Python版本)
python3 --version # 输出类似"Python 3.6.8"
安装完成后,系统会自动配置python3命令,无需额外设置环境变量。
若需要特定Python版本(如3.9+),可通过源码编译安装:
# 下载Python源码(以3.9.12为例,替换为目标版本)
wget https://www.python.org/ftp/python/3.9.12/Python-3.9.12.tgz
# 解压源码包
tar xzf Python-3.9.12.tgz
cd Python-3.9.12
# 配置编译选项(--enable-optimizations启用性能优化)
./configure --enable-optimizations
# 编译并安装(-j参数指定线程数,提升编译速度)
make -j $(nproc) # nproc获取CPU核心数
sudo make altinstall # altinstall避免覆盖系统默认Python(如python2)
编译完成后,通过python3.9 --version验证安装(需替换为目标版本)。
三、配置环境变量(可选,解决命令路径问题)
若使用源码编译安装或需要将Python添加到系统全局路径,可修改环境变量:
# 编辑.bashrc文件(当前用户生效)
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
# 使配置生效
source ~/.bashrc
# 验证路径(检查Python命令是否在PATH中)
which python3.9 # 输出类似"/usr/local/bin/python3.9"
四、安装pip:Python包管理工具
pip是Python的包管理工具,用于安装、升级第三方库。无论是yum安装还是源码编译,均需确保pip可用:
# 使用yum安装pip(适用于yum安装的Python)
sudo yum install -y python3-pip
# 若为源码编译安装,需通过get-pip.py脚本安装
wget https://bootstrap.pypa.io/get-pip.py
sudo python3.9 get-pip.py # 替换为目标Python版本
# 验证pip安装
pip3 --version # 输出类似"pip 21.1.3 from /usr/lib/python3.6/site-packages/pip"
五、创建虚拟环境:隔离项目依赖
虚拟环境可避免不同项目间的依赖冲突,是Python开发的最佳实践:
# 使用venv模块创建虚拟环境(Python 3.3+内置)
python3.9 -m venv myenv # 替换为目标Python版本,myenv为虚拟环境目录名
# 激活虚拟环境
source myenv/bin/activate # 激活后,命令行前会显示"(myenv)"
# 安装项目依赖(假设有requirements.txt文件)
pip install -r requirements.txt # 安装所有依赖包
# 退出虚拟环境
deactivate
六、运行与管理Python应用
在虚拟环境中,可通过python命令运行Python脚本:
# 进入项目目录
cd /path/to/your/project
# 激活虚拟环境
source myenv/bin/activate
# 运行脚本(如hello.py)
python hello.py # 输出脚本内容
若应用需要后台持续运行(如Web服务),可创建systemd服务:
# 创建服务文件(以my-python-app为例)
sudo vim /etc/systemd/system/my-python-app.service
# 写入以下内容(替换路径和用户)
[Unit]
Description=My Python Application
After=network.target
[Service]
User=your_username # 替换为实际用户名
Group=your_groupname # 替换为实际用户组
WorkingDirectory=/path/to/your/app # 应用目录
ExecStart=/path/to/your/app/myenv/bin/python /path/to/your/app/main.py # 虚拟环境中的Python路径
Restart=always # 应用崩溃后自动重启
[Install]
WantedBy=multi-user.target
# 重载systemd配置
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start my-python-app
# 设置开机自启
sudo systemctl enable my-python-app
# 查看服务状态
sudo systemctl status my-python-app # 检查是否运行正常
七、可选:使用Docker容器化部署
若需要环境隔离或快速迁移,可使用Docker部署Python应用:
# 安装Docker(若未安装)
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
# 编写Dockerfile(在项目根目录下)
vim Dockerfile
# 写入以下内容(以Python 3.9为例)
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "main.py"] # 替换为应用入口文件
# 构建Docker镜像
docker build -t my-python-app .
# 运行Docker容器(映射端口5000到主机)
docker run -d -p 5000:5000 my-python-app
以上步骤覆盖了CentOS上Python部署的常见场景,可根据实际需求选择合适的方式(如快速测试用yum安装,正式项目用源码编译+虚拟环境+systemd/Docker)。