企业级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
相关推荐
名字还没想好☜2 分钟前
Python f-string 进阶:数字格式化、对齐填充、调试 = 号与嵌套表达式
开发语言·数据库·python·字符串格式化·f-string
LucianaiB4 分钟前
毕业老学长给我留的最后一句话是:“AI 写的,别挂我名。” 我直接 神(Seed Evolving) 来!助我!
后端
IvanCodes9 分钟前
RAG 实战教程(一):RAG 工作原理与完整流程——分片、索引、召回、重排和生成
人工智能·后端·agent
·薯条大王30 分钟前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
CodeSheep1 小时前
稚晖君公司人事大变动,来了!
前端·后端·程序员
小满zs1 小时前
Go语言第八章(函数)
后端·go
Dxy12393102161 小时前
Python 如何使用 MySQL 的事务
python·mysql
stark张宇3 小时前
实战Go高级特性:Context超时控制、defer资源回收与Channel通信的关键避坑点
后端·go
凤山老林4 小时前
Spring Boot @Async 线上实战:从默认配置到生产级线程池治理
java·spring boot·后端
IT_陈寒5 小时前
Vue的响应式让我原地破防,原来问题出在这
前端·人工智能·后端