1# mode: run 2# tag: pep489 3 4PYTHON setup.py build_ext --inplace 5PYTHON -c "import a" 6 7######## setup.py ######## 8 9from Cython.Build.Dependencies import cythonize 10from distutils.core import setup 11 12setup( 13 ext_modules = cythonize("**/*.pyx"), 14 ) 15 16######## a.pyx ######## 17 18import sys 19import a 20assert a in sys.modules.values(), list(sys.modules) 21assert sys.modules['a'] is a, list(sys.modules) 22 23from atest.package import module 24 25######## atest/__init__.py ######## 26 27######## atest/package/__init__.py ######## 28 29######## atest/package/module.pyx ######## 30 31import sys 32assert 'atest.package.module' in sys.modules 33 34import a 35import atest.package.module as module 36assert module in sys.modules.values(), list(sys.modules) 37assert sys.modules['atest.package.module'] is module, list(sys.modules) 38 39if sys.version_info >= (3, 5): 40 from . import pymodule 41 assert module is pymodule.import_without_package() 42 43######## atest/package/pymodule.py ######## 44 45from . import module 46from ..package import module 47import atest.package.module 48 49import a 50 51def import_without_package(): 52 import os.path 53 import sys 54 sys.path.insert(0, os.path.dirname(__file__)) 55 sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) 56 import module 57 import package.module 58 assert package.module is module 59 return module 60