Maturin Import Hook
A python import hook to automatically rebuild maturin projects and import stand-alone rust files.
Using this import hook reduces friction when developing mixed python/rust codebases because changes made to rust
components take effect automatically like changes to python components do.
The import hook also provides conveniences such as
importlib.reload() support for maturin projects.
Documentation can be found at maturin.rs.
Usage
After installing maturin, install the import hook into a python virtual
environment with:
pip install maturin_import_hook
Then, optionally make the hook activate automatically with:
python -m maturin_import_hook site install
This only has to be run once for each virtual environment.
Alternatively, put the following at the top of each python script where you want to use the hook:
import maturin_import_hook
maturin_import_hook.install()
import example_maturin_package
import subpackage.my_rust_script
Once the hook is active, any import
statement that imports an editable-installed maturin project will be
automatically rebuilt if necessary before it is imported.
CLI
The package provides a CLI interface for getting information such as the location and size of the build cache and
managing the installation into sitecustomize.py
. For details, run:
python -m maturin_import_hook --help
Debugging
If you encounter a problem, a good way to learn more about what is going on is to enable the debug logging for the
import hook. This can be done by putting the following lines above the import that is causing an issue:
logging.basicConfig(format="%(name)s [%(levelname)s] %(message)s", level=logging.DEBUG)
maturin_import_hook.reset_logger()
import some_package
License
Licensed under either of:
at your option.