查找目录中未使用的Python模块
我正在做一个比较大的Python项目,里面有很多模块在主仓库里。问题是,随着时间的推移,我们有很多模块其实已经不再使用了,但我们没有删除或者移动这些.py文件。结果就是,目录里有比我们实际使用的文件多得多。我想在把项目迁移到新平台之前,先把这些不需要的文件删掉,以免把不需要的代码也一起迁移过去。
有没有什么工具可以让我提供一个初始模块(也就是启动应用的那个模块)和一个目录,然后告诉我哪些文件被导入了,哪些没有?我见过很多类似的工具,它们会查看导入的内容,告诉我哪些被使用,哪些没用,但没有看到能检查文件是否被导入的工具。
1 个回答
2
你可以通过查看 sys.modules
来获取当前运行时加载的模块。这个东西就像一个字典,里面的键是模块的名字,值是对应的 module
对象。通过这个模块对象,你可以找到这个模块的路径。
不过要注意:在你的项目中,有些模块可能是在运行时被加载的。在这种情况下,你可以试着找找 __import__(...)
函数和 importlib.import_module(...)
的使用地方。