Python生产环境构建
目录
Python生产环境构建的介绍
Python生产环境的部署
linux系统上的操作!!!
安装依赖包
下载并编译Python
配置一些开机自启的配置
设定 mirros.ustc.edu.cn pip源
下载virtualenv
window系统上的操作(选)
linux系统上的操作!!!
创建项目目录
从后端拿到对应的项目克隆到服务器中
构建项目对应的虚拟环境并安装项目依赖
解决办法
主机系统中安装supervisor(守护进程)并根据项目README文件配置启动文件
验证启动
Python生产环境构建的介绍
在线上环境中 `python环境` 的设置也是尤为重要的, 这里主要介绍单体应用的环境设置, 容器环境只需要采用相应镜像即可。 在线上环境中同样采用 `virtualenv` 来针对不同的项目及异步程序进行环境的设定, 根据项目根目录中提供的 `requirements.txt` 包版本控制文件进行依赖项的安装及同步。 为了更好的对 `python版本` 的控制, 采用源码部署是通用的方式。
Python生产环境的部署
linux系统上的操作!!!
安装依赖包
yum -y install epel-release
yum -y groupinstall "Development Tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel gcc zlib libffi libffi-devel openssl11 openssl11-devel
下载并编译Python
https://www.python.org/downloads/source/
tar xf Python-3.14.0.tar.xz -C /opt #解压指定位置opt
cd /opt/Python-3.14.0/ #进入解压完成的包
./configure --prefix=/usr/local/Python-3.14.0/ --with-openssl=/usr/bin/openssl && make -j 4 && make install#--prefix指定安装位置
#--with-openssl确保openssl模块能被正确编译
这个样子是编译成功的
配置一些开机自启的配置
vim /etc/profile.d/openssl11.sh
export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)vim /etc/profile.d/python3.14.sh
export PATH=$PATH:/usr/local/Python-3.14.0/binsource /etc/profile
设定 mirros.ustc.edu.cn pip源
sudo pip3 install -i https://pypi.mirrors.ustc.edu.cn/simple/ --upgrade pip
ln -sf /usr/local/Python-3.14.0/bin/pip3 /usr/local/Python-3.14.0/bin/pip
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
下载virtualenv
pip install virtualenv
window系统上的操作(选)
具体操作看这一篇Python个人开发环境构建-CSDN博客
像linux一样创建两个文件夹存项目文件和虚拟环境的项目文件(看一下而已)
将拿到的项目代码放在Project下,在envs中创建项目的虚拟环境
写一下Python的虚拟环境解释器
linux系统上的操作!!!
创建项目目录
mkdir -p /srv/envs/apps // 创建各项目存放虚拟环境的目录
mkdir -p /srv/apps // 创建存放项目的目录
从后端拿到对应的项目克隆到服务器中
cd /srv/apps
git clone 去克隆项目
构建项目对应的虚拟环境并安装项目依赖
virtualenv -p python3 /srv/envs/apps/helloworld #创建虚拟环境
cd /srv/apps/helloworld
source /srv/envs/apps/helloworld/bin/activate #进入虚拟环境
pip install -r requirements.txt #下载代码所依赖的包
deactivate #退出虚拟环境
默认运行代码之后是占用前台资源的生产环境中式不要占用前台资源
解决办法
主机系统中安装supervisor(守护进程)并根据项目README文件配置启动文件
pip3 install supervisor #守护进程
echo_supervisord_conf >/etc/supervisord.conf #生成主配置文件
vim /etc/supervisord.conf最下面的位置创建一个子配置文件,可以将前台程序目录放在子配置中;[include];files = /etc/supervisord.d/*.ini
vim /etc/supervisord.d/程序名.ini
下方代码写入
[program:helloworld]
directory=/srv/apps/helloworld #项目所在的目录
command=/srv/envs/apps/helloworld/bin/python /srv/apps/helloworld/server.py #虚拟环境路径和运行的文件
autostart=true #自动的启动
autorestart=true #自动重启
startsecs=10 #开始10秒钟检测程序
stderr_logfile=helloworld_stderr.log #存储日志的文件
stdout_logfile=helloworld_stdout.log
stdout_logfile_maxbytes = 20MB #达到保留的条件
stdout_logfile_backups = 20 #日志保留的个数supervisord -c /etc/supervisord.conf #手动启动supervisord
验证启动
supervisorctl reload #重载
supervisorctl update #更新
supervisorctl status #查看状态
ps aux | grep super