查找目录中未使用的Python模块

4 投票
1 回答
523 浏览
提问于 2025-04-18 08:53

我正在做一个比较大的Python项目,里面有很多模块在主仓库里。问题是,随着时间的推移,我们有很多模块其实已经不再使用了,但我们没有删除或者移动这些.py文件。结果就是,目录里有比我们实际使用的文件多得多。我想在把项目迁移到新平台之前,先把这些不需要的文件删掉,以免把不需要的代码也一起迁移过去。

有没有什么工具可以让我提供一个初始模块(也就是启动应用的那个模块)和一个目录,然后告诉我哪些文件被导入了,哪些没有?我见过很多类似的工具,它们会查看导入的内容,告诉我哪些被使用,哪些没用,但没有看到能检查文件是否被导入的工具。

1 个回答

2

你可以通过查看 sys.modules 来获取当前运行时加载的模块。这个东西就像一个字典,里面的键是模块的名字,值是对应的 module 对象。通过这个模块对象,你可以找到这个模块的路径。

不过要注意:在你的项目中,有些模块可能是在运行时被加载的。在这种情况下,你可以试着找找 __import__(...) 函数和 importlib.import_module(...) 的使用地方。

撰写回答