企业级Flask项目移植记录【待补完】

背景

Flask项目A从老电脑C1移植到新电脑C2上

更新日志

1-240614上线第一版经验,博主关于这个项目包的问题还没有解决,正在解决中,但是整体思路大家在移植的时候可以借鉴。

思路

1-首先生产环境的python解释器等相关的东西最好严格保持一致,这样能避免很多奇奇怪怪的问题!

2-我们在新电脑C2上创建一个新Flask程序,然后把requirements.txt文件中的包一个个下载

3-

过程:

Flask程序如何新建就不讲了,就说创建后如何操作

删新创建Flask程序中没用的东西

解压生产环境中程序

全局Python3.6.6解释器下requirements.txt包

因为我的生产环境是全局解释器跑的程序,所以这里我也用全局,

因为这和win10下Apache部署Flask密切相关,不能随意改动

复制代码
#生成requirements240601.txt文件
pip freeze > requirements240601.txt

#安装requirements240601.txt文件
pip install -r requirements240601.txt

下包出现问题【这就是移植最难的地方】

我需要把前面开发人员的历史问题解决

cffi包问题,先跳过

MarkupSafe问题

mistune包找不到版本

mod-wsgi问题【最大问题】

类似问题不一一截图了,反正很多

历史项目的难点在于你不知道哪个包这个项目实际用了, 哪个包没用,

项目在多个开发阶段下的包都是会不断更新的,如果遇到偷懒的程序员或者当时项目很紧急,他就算知道这个包没用,当时的程序员也不会去删除这个包

这就很考验后来程序员的经验和判断力了

当前我们的思路就是尽量把包装全


转变思路解决包下载不了的问题

我们去老电脑的python解释器下Lib/sitepackages文件夹下把所有包下下来,

然后全部丢到新电脑上对应的python解释器的Lib/sitepackages目录下,

注意新电脑的Lib/sitepackages与Lib文件包也需要做一个备份!

打包与备份【十分重要!!!】

生产环境包替换新电脑下的python包

换包之后肯定会存在问题,这个时候就只能一个个去解决了~

这个相对于我们requirements.txt方式会减少一些难度,

比如我们规避了上面描述的一些包可能由于历史久远不在提供下载的问题哦!

验证包是否装到了正确的位置

【重要!】

复制代码
def error_console:

        【最终报移植成功、如何解决的截图、解决思路,等待博主更,这里单纯占坑】

        pass

编辑配置启动信息

复制代码
--host=0.0.0.0 --port=10018

你在跑项比如修改了数据库连接、端口等信息后,可能会报错,

你需要根据报错去怀疑和验证哪个包装错了,

你的最终目标就是程序能跑起来,能给前端用,

还得经过一段时间的使用后,证明和老电脑上的Flask项目没什么差别,

才能证明你移植真的成功了~

后续问题修复【重要!】

这里我根据我项目启动时的报错进行了包怀疑,简单举几个例子

项目启动时出现下面问题

我预备在比对一下新老电脑的Lib文件,看看和Werzeug可能相关的包复制替换一下,看能不能解决

【24060123点41分更新,还没有解决~,明天搞~】

可能用到的命令

复制代码
1-查看pip版本:用pip -V可以查看版本,是大写的V
命令:pip -V
相关推荐
灰色头像1 分钟前
Nginx 内置变量详解:从原理到实战案例
后端
程序员小假10 分钟前
我们来说一说解决线程安全的方案
后端
李九四17 分钟前
章节16:实现注释功能
后端·架构
_風箏18 分钟前
SpringBoot【集成Thumbnailator】Google开源图片工具缩放+区域裁剪+水印+旋转+保持比例等(保姆级教程含源代码)
spring boot·后端·google
不枯石18 分钟前
Python计算点云的欧式、马氏、最近邻、平均、倒角距离(Chamfer Distance)
python·计算机视觉
_風箏19 分钟前
SpringBoot【ElasticSearch集成 02】Java HTTP Rest client for ElasticSearch Jest 客户端集成
java·后端·elasticsearch
雷达学弱狗19 分钟前
anaconda本身有一个python环境(base),想用别的环境就是用anaconda命令行往anaconda里创建虚拟环境
开发语言·python
xiaok20 分钟前
docker拉取镜像太慢,配置国内的镜像加速器
后端
林太白26 分钟前
动态角色权限和动态权限到底API是怎么做的你懂了吗
前端·后端·node.js
麻雀无能为力31 分钟前
python 自学笔记13 numpy数组规整
笔记·python·numpy