def find_package_dirs(paths): """Find all package directories in given paths""" dirs = [] for importer, modname, ispkg in pkgutil.iter_modules(paths): module_loader = importer.find_module(modname) if ispkg: yield module_loader.filename # tmpdir is pytest fixture def test_find_package_dirs(tmpdir): tmpdir.mkdir('foo_package').join('__init__.py').write('', mode='w') paths_for_search = [str(tmpdir)] dirs = find_package_dirs(paths_for_search) assert len(dirs) == 1 assert py.path.local(dirs[0]).basename == 'foo_package'