3

我有一个用 Python 2.5 编写的 Django 应用程序,我计划将其升级为与 Python 2.6 兼容。它包含数百个 .py 文件。有没有一种简单的方法可以在这些文件中找到所有已弃用的函数?

4

5 回答 5

5

在 Python 的不同版本之间(如 2.5 和 2.6 之间),任何可能出现问题的东西都是对至少一个版本的警告。大多数弃用警告是默认发出的,但您可以使用 -W 解释器调用选项对发出的警告进行细粒度控制。

这是点发布之间的一个相对较小的问题,因为它们明确旨在向后兼容。Python 2.x 和 3.0 之间有一个更大的变化,其中一些特殊用途的工具包括 -3 解释器调用选项,它显示了与 Python 3.0 相关的弃用警告。

于 2009-10-31T08:49:11.880 回答
5

从 Python 2.5 升级到 Python 2.6 时,我不确定您所说的“不推荐使用的函数”是什么意思。

发行说明非常具体。 http://docs.python.org/whatsnew/2.6.html

没有弃用的功能。不推荐使用一些完整的模块,以及 Exception 类的一个属性。

你有 GREP(或 FIND),你有 PYTHON,你可以用它来搜索 100 个 Python 源文件。

当我们从 2.5 更改为 2.6 时,弃用函数的问题为零。

弃用的意思是“仍然有效”。

我们只有一个不推荐使用的模块,它是在我们的单元测试期间通过警告消息报告的。我们只是阅读了弃用消息的日志并替换了模块。(md5顺便说一句,它是。)最终,我们为所有用途做了一个 GREPmd5并替换了它们。

于 2009-10-31T12:56:43.497 回答
0

我认为 Python 2.5 应用程序应该可以在 2.6 中正常工作而无需更新。2.6 可能会抱怨一些不推荐使用的功能,但这些功能仅在 3.0 中被删除,并且在 2.6 中仍然有效。

于 2009-10-31T08:17:23.677 回答
0

真正的交易是从 2.6 迁移到 3.0。如果你想了解这一切,有一个很好的演讲:

http://blip.tv/file/1949281

包括:

  • 不兼容;
  • 变通;
  • 待办事项;
  • 自动迁移工具。
于 2009-10-31T16:09:05.253 回答
0

我越来越相信正确的答案是“运行你的测试套件来找出答案”。你的测试套件合理地覆盖了你的程序,对吧?如果没有,这是创造一个的好机会(你可以说服你的头脑冷静的老板这是“迁移”;))。

于 2011-11-18T22:27:35.970 回答