wrong ImportError message printed by python3.3 when it can't find a module?
Peter Otten
__peter__ at web.de
Fri Dec 7 16:20:06 EST 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