New submission from Yon Ar Chall <yon.ar.ch...@gmail.com>: Hi there !
I was trying to use importlib.util.spec_from_file_location() to import a nested package containing a 3-dot relative import. $ tree ~/myproj /home/yon/myproj └── mypkg ├── __init__.py └── subpkg ├── __init__.py ├── subsubpkg_abs │ └── __init__.py └── subsubpkg_rel └── __init__.py Relative import here : $ cat ~/myproj/mypkg/subpkg/subsubpkg_rel/__init__.py from ... import subpkg Absolute import here (for comparison purpose) : $ cat ~/myproj/mypkg/subpkg/subsubpkg_abs/__init__.py import mypkg.subpkg $ python3 Python 3.5.2 (default, Nov 17 2016, 17:05:23) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from importlib.util import spec_from_file_location >>> spec = spec_from_file_location("subsubpkg_abs", >>> "/home/yon/myproj/mypkg/subpkg/subsubpkg_abs/__init__.py") >>> spec.loader.load_module() <module 'subsubpkg_abs' from '/home/yon/myproj/mypkg/subpkg/subsubpkg_abs/__init__.py'> >>> spec = spec_from_file_location("subsubpkg_rel", >>> "/home/yon/myproj/mypkg/subpkg/subsubpkg_rel/__init__.py") >>> spec.loader.load_module() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<frozen importlib._bootstrap_external>", line 388, in _check_name_wrapper File "<frozen importlib._bootstrap_external>", line 809, in load_module File "<frozen importlib._bootstrap_external>", line 668, in load_module File "<frozen importlib._bootstrap>", line 268, in _load_module_shim File "<frozen importlib._bootstrap>", line 693, in _load File "<frozen importlib._bootstrap>", line 673, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 665, in exec_module File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed File "/home/yon/myproj/mypkg/subpkg/subsubpkg_rel/__init__.py", line 1, in <module> from ... import subpkg ValueError: attempted relative import beyond top-level package >>> Raw import just works (as importlib.import_module() does) : >>> import mypkg.subpkg.subsubpkg_rel >>> ---------- components: Library (Lib) messages: 363678 nosy: yon priority: normal severity: normal status: open title: Cannot load sub package having a 3-dot relative import versions: Python 3.5 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue39905> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com