是否有IDE /实用程序来重构Python*导入以使用标准的module.member语法?

Zac*_*c B 24 python ide syntax refactoring readability

我最近的任务是维护一堆使用from module import *相当多的代码.

这个代码库变得足够大,以至于导入冲突/命名歧义/"这个功能来自何处,有八个导入的模块有一个同名的名字?!"ism变得越来越普遍.

继续前进,我一直在使用显式成员(即import module ... module.object.function()为了使维护工作更具可读性.

但我想知道:是否有一个IDE或实用程序可以强大地解析Python代码并重构*导入语句到模块导入语句中,然后将完整的模块路径预先添加到该模块成员的所有引用上?

我们没有大量使用元编程/反射/ inspect/ monkeypatching,所以如果上面的IDE/util在这些事情上表现不佳,那就没关系.

Wol*_*lph 5

这不是一个完美的解决方案,但我通常会这样做:

  1. 打开 Pydev
  2. 删除所有*导入
  3. 使用optimize imports命令( ctrl+shift+o)重新添加所有导入

大致解决了问题:)


如果您想自己构建解决方案,请尝试http://docs.python.org/library/modulefinder.html

  • 但这不是(完全)自动化的;)并且它不可避免地无法识别[我的评论中概述的“numpy.sum”问题](http://stackoverflow.com/questions/12677061/is-there-an-ide- utility-to-refactor-python-imports-to-use-standad-module-membe#comment17255796_12677061),改变代码的行为并引入一个微妙的、难以发现的错误。 (3认同)