部署时需要注意的几个条件:

1、python项目管理器中的python版本要保持和开发环境的大版本一致:例如,我在开发时使用的是3.8.6,部署时因为管理器默认python3.7.8,会出错。后来选择了python项目管理器能够提供的最高3.8.5的同版本部署才得以成功。

2、requirements.txt 中只保留最基本的Flask信息。过多的信息会导致部署失败。最基本的表现就是,flask模块安装时会自动安装jinja2 和 WSG的对应版本,而通过pip 命令生成的requirements.txt 中也会有jinjia2 和 WSG的依赖信息,最终可能导致重复安装而出现jinja2的import出错,常出现的问题就是jinja2 的import json 找不到json模块,这个问题在哔哩哔哩的视频里也出现过,解决方案是通过重装python项目管理器后实现的,但尝试后没有得到解决,最终在各种测试后(业余历时大约2天),终于通过只保留requirements.txt中的flask依赖而愉快的解决(当然包括1中所述的python版本切换,所以,具体是哪个操作解决了无法部署的问题无法精确定位)。

3、映射后修改端口这个方面应该是使用宝塔面板的人基本都会的,也就不详细说明了。

描述一下我在部署flask的路上的一些经过:

(都是流水账,如果你也遇到问题,烦了,可以看看解闷)

作为初转python的业余程序员,为什么选择flask。

我的开发目标只是使用一个最简单的方式,实现一个python的接口。所以在flask和django之间,选择了flask,虽然我也希望能找一个祥tp一样的成熟框架,学习成本让我必须选择flask这种最简单快速的方式。

flask的编写比较容易,而好奇心让我发现宝塔面板有python项目管理器,所以找教程,非常没有耐心的简单看了一下就开始了尝试。服务器重装,宝塔重装搞了很多次。最开始的情况是部署以后,查看模板,一个安装好的模板都没有,同时,也没办通过输入模板名称来达到安装模板的目的,最后怀疑是centos的版本问题(最开始使用的是7.4),查看宝塔面板安装教程,根据说法,面板的兼容性是高版本到低版本依次降低的,所以更换系统为8.X版本,结果问题更进一步,来到了jinja2找不到json,于是各种尝试,最后又换为了7.4的centos,因为在我查找的资料中,又说7.X 版本是python项目库管理器支持最好的版本(当然,资料有点老旧),同时也是为了很我现有的稳定运行的服务器相匹配,又做了尝试。做好了服务器系统,然后安装LNMP环境,安装python管理器,安装3.8.5 版本的python,删除requirements.txt 中的非flask依赖信息,开始部署,开机运行,设置IP地址访问,最后测试成功。

整个具体的过程就不截图了,分享个链接,是我各种方式找资料中最后用的一个,虽然只是个安装流程,但请你品,你细品:flask 部署到bt python项目管理器上

当时我直接将文件上传到wwwroot中的,没有设置server_test这些文件,有看到的,这个有很大的参考价值。