python - 我应该按照哪个顺序在 Python、DJango 和 DJango-cms 中升级?
问题描述
我必须升级我的 python 项目,该项目目前在 Python 2.7 /Django 1.10.8和 Django-cms 3.4.5上运行。
要版本,Python 3.7 Django 2.2 Django-cms 3.6
我可以知道,我应该从哪里开始,有没有像 Pylint 这样的升级工具来做到这一点?
解决方案
这是最安全的升级路线,因为它让您在每一步都处于支持窗口中。
- 首先,从 python2.7 跳转到 python3.5(起初,由于版本支持,您只能进入 python 3.5 版本)。这也很可能是最困难的一步,因为需要从 python2.7->3 更新许多其他包和依赖项。
- 当我过去解决这个问题时,我使用python-modernize来帮助完成代码迁移。但是,通过这些包将是一个缓慢的过程(确保你有某种形式的测试)。
- 接下来将 django 升级到 1.11。
- 然后将 django-cms 升级到 3.6(最新版本)
- 现在将 django 升级到 2.2 版(最新版本,LTS)
- 现在将python升级到3.7(最新版本)
按此顺序执行此操作将使您在整个升级过程中处于支持窗口中。
评论中对话的另一种选择是:由@dirkgroten和@alasdair提供。这具有跳过 python3.5 升级的额外优势。
- 将 django 升级到最新的 1.11.X(当前为 1.11.22)。您应该始终使用最新的 Django 次要版本,这样您就不会错过安全修复,并且直到 1.11.17 才添加 Python 3.7 支持。
- 将 django-cms 升级到 3.6(最新版本)
- 将 Python 升级到 3.7(最新版本)
- 将 django 升级到最新的 2.2.X (LTS)
推荐阅读
- swift - 如何在swift 4中获取字符串中的文本索引?
- html - 在父级的兄弟级 Div 下方显示子级 Div
- javascript - 离开页面前的 Jquery 未保存更改警报
- python-3.x - 如何在 Pandas 中并排放置三个条形图?
- vue.js - 如何在 Vue 中做 jQuery 的 .trigger()
- python - 未找到请求实体
- c# - C# 在 dotnet 2.0 上的泛型中调用运算符
- python - 加载图像时 OpenCV 显示错误或修改的结果
- python - 查找列具有该特定行的最大数量的次数
- matlab - 如何在MATLAB中替换矩阵中的两个值