wrong ImportError message printed by python3.3 when it can't find a module?

Peter Otten __peter__ at web.de
Fri Dec 7 22:20:06 CET 2012


Irmen de Jong wrote:

> I'm seeing that Python 3.3.0 is not printing the correct ImportError when
> it can't import a module that is imported from another module. Instead of
> printing the name of the module it can't import, it prints the name of the
> module that is doing the faulty import.
> 
> Behold:
> I have created:
>   importfail\
>      __init__.py
>      main.py
>      sub.py
> 
> 
> [L:\]type importfail\main.py
> from . import sub
> 
> [L:\]type importfail\sub.py
> import nonexisting_module
> 
> [L:\]
> 
> 
> [L:\]c:\Python33\python.exe -m importfail.main
> Traceback (most recent call last):
>   File "C:\Python33\lib\runpy.py", line 160, in _run_module_as_main
>     "__main__", fname, loader, pkg_name)
>   File "C:\Python33\lib\runpy.py", line 73, in _run_code
>     exec(code, run_globals)
>   File ".\importfail\main.py", line 1, in <module>
>     from . import sub
> ImportError: cannot import name sub                # <--- huh ?
> 
> 
> Python 3.2 and earlier do the right thing:
> 
> [L:\]c:\Python32\python.exe -m importfail.main
> Traceback (most recent call last):
>   File "C:\Python32\lib\runpy.py", line 160, in _run_module_as_main
>     "__main__", fname, loader, pkg_name)
>   File "C:\Python32\lib\runpy.py", line 73, in _run_code
>     exec(code, run_globals)
>   File "L:\importfail\main.py", line 1, in <module>
>     from . import sub
>   File "importfail\sub.py", line 1, in <module>
>     import nonexisting_module
> ImportError: No module named nonexisting_module        # <--- ok.
> 
> (this is on windows, but on osx I see the same behavior).

A paragon of clarity -- ye lurkers, this is how a bug report should be.

> Is there a problem with the rewritten import logic in Python 3.3?
> 
> Thanks
> Irmen de Jong

I believe this is fixed, see http://bugs.python.org/issue15111






More information about the Python-list mailing list