Home / Companies / JetBrains / Blog / Post Details
Content Deep Dive

Explicit Lazy Imports Are Coming to Python 3.15 - The JetBrains Blog

Blog post from JetBrains

Post Details
Company
Date Published
Author
Cheuk Ting Ho
Word Count
1,236
Company Posts That Month
53
Language
American English
Hacker News Points
-
Summary

Python 3.15 introduces explicit lazy imports via PEP 810, a feature that defers module loading until their attributes are first accessed, aiming to reduce startup latency and memory consumption significantly. This approach uses proxy objects within the module’s namespace, preserving critical interpreter optimizations while maximizing efficiency, particularly in environments with high-latency filesystems. Python 3.15.0b1 is available for testing, and users can try this feature using tools like `uv` or `pyenv` to download the beta version. Profiling scripts with lazy imports shows a decrease in loading time, as unnecessary modules like pandas are not loaded until used, enhancing performance in scenarios where large libraries are only conditionally required. The internal mechanism involves lazy objects being reified upon use, with modules moving from `sys.lazy_modules` to `sys.modules` only when accessed, thus avoiding unnecessary imports. Users can experiment with this feature in PyCharm, although full support for Python 3.15 is still in development.

Trends Found in this Post

No tracked trend matches for this post yet.