在Python,DJango和DJango-cms中升级时应该遵循哪个顺序?

Sha*_*jan 3 python django django-cms python-2.7 python-3.x

我必须升级我的python项目,该项目当前在Python 2.7 / Django 1.10.8和Django-cms 3.4.5上运行

要版本化,Python 3.7 Django 2.2 Django-cms 3.6

我想知道,应该从哪里开始,是否有像Pylint这样的升级工具可以做到这一点?

Mat*_*our 8

这是最安全的升级途径,因为它会使您在每一步都进入支持窗口。

  • 首先,执行从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)

  • 由于django cms版本3.4.5支持django 1.11。如果您过早地高于django 1.11,那么您将脱离django cms支持窗口。CMS 3.6不支持低于1.10的Django版本。 (2认同)
  • @dirkgroten忽略了Python / Django-CMS升级,无论如何,升级Django 1.10-> Django 1.11 LTS-> Django 2.2 LTS是一个好主意。一旦您的(py3)代码在Django 1.11上运行而没有任何过时警告,则它应在Django 2.X上运行。如果您直接从Django 1.10跳到2.2,那么[这些弃用](https://docs.djangoproject.com/en/dev/internals/deprecation/#deprecation-removed-in-2-1)可能会吸引您。 (2认同)