Python弃用函数

3

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

5个回答

5
在 Python 的版本发布之间(比如 2.5 和 2.6 之间),任何可能影响使用的变化都会在至少一个版本中作为警告发出。大多数不建议使用的警告信息默认会被发出,但你也可以通过 -W 解释器选项来精细控制发出的警告信息。
在 Python 的点版本之间,这只是一个相对较小的问题,因为这些版本明确旨在向后兼容。但在 Python 2.x 和 3.0 之间,有着更大的变化。针对此类情况,一些特殊工具包括 -3 解释器选项,用于显示与 Python 3.0 相关的不建议使用的警告信息。

5
我不确定你在从Python 2.5升级到Python 2.6时所说的“弃用函数”的意思。 发行说明非常具体。
没有任何弃用函数。有几个整个模块被弃用,以及Exception类的一个属性。
您可以使用grep(或find)和Python来搜索100个Python源文件。
当我们从2.5改为2.6时,我们没有遇到任何弃用函数的问题。
弃用意味着“仍然有效”。
我们只有一个弃用的模块,并且在单元测试期间通过警告消息报告了它。我们只需阅读弃用消息的日志并替换该模块即可。(顺便说一下,它是md5)。最终,我们对所有使用md5的情况进行了grep并将其替换。

0

我认为 Python 2.5 应用程序在 2.6 版本中应该能够正常工作,不需要更新。2.6 版本可能会抱怨一些已经被弃用的功能,但这些功能只是在 3.0 版本中被移除,在 2.6 版本中仍然可用。


是的,它在 Python 2.6 中可以正常运行。我只是想找出所有过时的函数并使其符合新版本的要求。同时,我也会知道在新代码中需要避免使用哪些库或函数。 - jack

0

真正的问题是从2.6迁移到3.0。如果你想了解所有相关信息,有一个非常好的演讲可以参考:

http://blip.tv/file/1949281

它包括:

  • 不兼容性问题;
  • 解决方法;
  • 待办事项;
  • 自动迁移工具。

链接(视频?)似乎已经失效。它似乎超时了(“Cloudflare网络和源Web服务器之间的初始连接超时”)。 - Peter Mortensen

0

越来越多的人认为正确的答案是“运行测试套件以找出答案”。你已经合理地覆盖了你的程序,对吧?如果没有,这是一个很好的机会去创建一个(你可以说服你那个戴尖帽子的老板,这是一次“迁移”)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接