I
Irmen de Jong
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
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