4
任何人都知道可以扫描源目录并检测循环导入的库/脚本吗?Python:检测循环导入的脚本
任何人都知道可以扫描源目录并检测循环导入的库/脚本吗?Python:检测循环导入的脚本
我完全不知道任何工具,但我现在可以想到的几种方法可以让您获得这些数据。
的解释工作,你有充分的模块,创建导入它桩模块,然后用
$ python -v stub_module.py
运行此模块这仅适用于如果你不靠sys.path hackery和你的模块导入时没有危险的副作用(两个非常可疑的功能FWIW)。您将获得传递性的导入关闭,但使用它检测循环导入应该很简单。
随着logilab.astng,很容易提取您模块的所有直接进口(寻找logilab.astng.nodes.From
类型和logilab.astng.nodes.Import
的节点)。获得所有模块的直接导入列表后,创建导入图并查找周期。
同样,这只有在你不使用sys.path hacks时才有效。
Python解释器似乎很容易找到我的所有,但我猜你正在寻找某种静态分析工具..... – boatcoder 2012-02-17 21:59:51
是啊,我知道有些只能在运行时检测到,但我认为我们的大部分可以静态检测。 – Nix 2012-02-17 22:02:39
[检测循环导入]的可能重复(http://stackoverflow.com/questions/2406007/detecting-circular-imports) – 2015-10-27 14:42:02