bug? pkgutil.walk_packages returns packages that result in an ImportError

Peter Otten __peter__ at web.de
Thu Aug 26 15:29:33 CEST 2010


Chris Withers wrote:

>  From the docs of pkgutils.walk_packages:
> """
>      'onerror' is a function which gets called with one argument (the
>      name of the package which was being imported) if any exception
>      occurs while trying to import a package.  If no onerror function is
>      supplied, ImportErrors are caught and ignored, while all other
>      exceptions are propagated, terminating the search.
> """
> 
> My expectation of this is that if onerrors is left as None, names
> yielded will be importable.

I would infer no such promise, especially as the generator also yields 
modules, and no attempt at all is made to import those.
 
> However, because the yield is before the import check, you can get
> packages returned that are not importable.
> 
> This feels at odds with the docs above and I think is a bug.
> 
> If the yield were dropped to befoer the import check, we wouldn't have
> this problem.
> 
> what do others think?

I've never worked with that function; I'd like to hear more about your 
usecase.

Peter



More information about the Python-list mailing list