Flask 项目在 Linux 上部署流程

Flask demo 实例

Flask 基础web 服务搭建 demo 请参考个人 Github 仓库,地址:https://github.com/Largefreedom/flaskProject

该仓库借助 Pillowcv2 绘制了一个 2D 图片 伪 3D 效果展示,搭建成一个 web 服务

该项目目前存在一些问题

  • 1,项目中因为是对 GIF 中图片进行处理,需要将图片切分为帧,并将帧组合为 GIF,中间会通过临时文件目录存放中间状态,因此会出现频繁文件 IO 操作,相对代码处理时间远小于 IO 读写,因此会造成很大时间开销;

解决方法:

  • 针对共有数据图片,可以将数据以 Base64方式存入 Redis 内存数据库,接口调用时,读取速度更快,所有中间态尽量通过变量传递,而不是存入文件夹;

Flask 项目 Linux 部署

Flask 项目在 Linux 部署,可以采取多种方式,详细可以参考文章:https://blog.csdn.net/luhuibo318/article/details/102688154

本文只介绍一种简单方式 :通过 nohupPythonLinux实现的单机部署

Linux 默认安装的 python 版本多为 2.0+,一般不能满足我们的日常开发需求,因此需要在原有基础上安装一个3.0+版本

一,首先,搭建 Linux 上的 Python 环境,以 python3.7 为例

  • 1,安装源码编译时需要的依赖包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
  • 2,下载Linux 下的 python 源码,地址
https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz
  • 3,压缩包上传至服务器、解压、编译
# 解压
tar -zxvf Python-3.7.6.tgz

# 进入目录
cd Python-3.7.6

# 编译到指定目录
./configure --prefix=/usr/local/python3make && make install

  • 4,添加软链接
ln -s /usr/local/python3make/bin/pip3.7 usr/bin/pip3.7

ln -s /usr/local/python3make/bin/python3.7 /usr/bin/python3.7

二,项目处理

  • 1,导出 Flask 项目的 requirements.txt (依赖环境)

定位到项目目录下,输入 pipreqs . --encoding=utf8 --forcepipreqs 依赖包如果没有安装,提前执行pip install pipreqs 进行安装

  • 2,将项目整个文件移至 服务器上;
  • 3,服务器中进入 requirements.txt 同级目录,输入 pip3 -r install requirements.txt

三,项目启动

  • 创建服务自动化重启脚本,步骤二完成之后,进入 flask 项目 app.py 的目录下,vim py-re.sh创建自动化启动 shell脚本,如下
# 以下配置根据自己项目不同,进行响应修改

programeName="app.py"

echo "开始重启  ${programeName}"

pid=$(ps -ef | grep ${programeName} | grep -v grep | awk '{print $2}')


echo "查询服务进程id 为 ${pid}"

if [ -n ${pid} ]; then
   # 杀死进程
   kill -9 ${pid}
else
   echo "${progrmeName}进程为空,无法杀死"
fi
# 重启服务
nohup python3.7 -u ${programeName} &
echo "服务 ${programeName} 已启动"
tail -f nohup.out

  • 执行 sh py-re.sh 项目启动

你可能感兴趣的:(Python,进阶,flask,python,linux)