Hi,

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).


Is there a problem with the rewritten import logic in Python 3.3?

Thanks
Irmen de Jong
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to