New submission from Ronan Lamy <ronan.l...@gmail.com>: If an __init__.py file contains relative imports, doing 'import my_pkg.__init__' or calling __import__('my_pkg.__init__') creates duplicate versions of the relatively imported modules, which (I believe) causes cryptic errors in some cases (cf. the metaclass issue in http://code.google.com/p/sympy/issues/detail?id=3272 ).
More precisely, with my_pkg/__init__.py containing (see attachment for the full setup): from .module1 import a from my_pkg.module2 import b I get: Python 3.3.0a3+ (default:0685f51e9891, May 27 2012, 02:22:12) [GCC 4.6.1] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import my_pkg.__init__ >>> import sys >>> sorted(name for name in sys.modules if name.startswith('my_')) ['my_pkg', 'my_pkg.__init__', 'my_pkg.__init__.module1', 'my_pkg.module1', 'my_pkg.module2'] >>> Note the bogus 'my_pkg.__init__.module1' entry. For reference, in Python 3.2, the last line is: ['my_pkg', 'my_pkg.__init__', 'my_pkg.module1', 'my_pkg.module2'] NB: calling __import__('my_pkg.__init__') might seem odd (I didn't actually expect it to work on any Python version), but doctest apparently relies on it to test __init__.py files. ---------- components: Interpreter Core files: my_pkg.tar.bz2 messages: 161799 nosy: Ronan.Lamy priority: normal severity: normal status: open title: 'import my_pkg.__init__' creates duplicate modules type: behavior versions: Python 3.3 Added file: http://bugs.python.org/file25749/my_pkg.tar.bz2 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue14938> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com