PyO3 doesn't support sub-interpreters yet, so they're not straightforward to use from Rust. But you can use their FFI bindings for access. pyo3.rs/main/doc/pyo...
From Python 3.12 you can create sub-interpreters with their own GILs (so they can execute concurrently) using the C API. Most Python modules work well, but most extension modules (C API Modules) don't support multiple GILs yet. docs.python.org/3/c-api/init...