擅长:python、mysql、java
<p>从Python2.5开始,正确的方法是使用<a href="http://docs.python.org/2/library/pkgutil.html#pkgutil.iter_modules" rel="nofollow">pkgutil.iter_modules()</a>(对于平面列表)或{a2}(对于子包树)。两者都与命名空间包完全兼容。在</p>
<p>例如,如果我只想找到“jmb”的子包/子模块,我会:</p>
<pre><code>import jmb, pkgutil
for (module_loader, name, ispkg) in pkgutil.iter_modules(jmb.__path__, 'jmb.'):
# 'name' will be 'jmb.foo', 'jmb.bar', etc.
# 'ispkg' will be true if 'jmb.foo' is a package, false if it's a module
</code></pre>
<p>您也可以使用iter_模块或walk_包来遍历<em>所有</em>上的模块搜索路径;详见以上链接文档。在</p>