背景
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