在CentOS上部署Python环境可以通过以下步骤完成:
首先,确保你的CentOS系统是最新的。
sudo yum update -y
安装编译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
从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
./configure --prefix=/usr/local/python3
make -j 8 # 使用8个线程进行编译,可以根据你的CPU核心数调整
sudo make altinstall # 使用altinstall避免覆盖系统默认的Python版本
安装完成后,验证Python是否正确安装。
python3.x --version # 将3.x替换为你安装的版本号
使用venv
模块创建一个虚拟环境,以便更好地管理项目依赖。
sudo yum install -y python3-venv
python3.x -m venv myenv # 将3.x替换为你安装的版本号
source myenv/bin/activate # 激活虚拟环境
在虚拟环境中安装项目所需的Python包。
pip install -r requirements.txt # 如果你有requirements.txt文件
如果你打算将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
sudo systemctl daemon-reload
sudo systemctl start my_python_script.service
sudo systemctl enable my_python_script.service
如果你打算部署Web应用,可以使用Nginx和Gunicorn。
sudo yum install -y epel-release
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
在虚拟环境中安装Gunicorn。
pip install gunicorn
创建一个Gunicorn配置文件gunicorn.conf.py
。
bind = '127.0.0.1:8000'
workers = 3
gunicorn -c gunicorn.conf.py myapp:app # 将myapp替换为你的应用模块名,app替换为你的Flask应用实例名
编辑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;
}
}
sudo systemctl restart nginx
确保防火墙允许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应用的部署。