[Python-Dev] importlib is now bootstrapped (and what that means) (original) (raw)

Antoine Pitrou solipsis at pitrou.net
Mon Apr 16 13:13:53 CEST 2012


On Mon, 16 Apr 2012 09:54:41 +0200 Stefan Behnel <stefan_ml at behnel.de> wrote:

The new import cache broke Cython's load of on-the-fly compiled extension modules, which naively used "import(modulename)" after building them. I could fix that by moving to "imp.loaddynamic()" (we know where we put the compiled module anyway), although I just noticed that that's not actually documented. So I hope that won't break later on.

You can call importlib.invalidate_caches(). http://docs.python.org/dev/library/importlib.html#importlib.invalidate_caches

The next thing I noticed is that the old-style level -1 import no longer works, which presumably breaks a lot of Cython compiled modules. It used to work in the master branch until two days ago, now it raises a ValueError. We may be able to fix this by copying over CPython's old import code into Cython, but I actually wonder if this was really intended. If this feature wasn't deliberately broken in Py3.0, why break it now?

Regressions should be reported on the bug tracker IMHO.

Regards

Antoine.



More information about the Python-Dev mailing list