mirror of
https://github.com/ipetkov/crane.git
synced 2024-11-29 10:42:21 +03:00
26 lines
761 B
Markdown
26 lines
761 B
Markdown
## I see the `pyo3` crate constantly rebuilding
|
|
|
|
The `pyo3` crate uses checks `$PYO3_PYTHON` for a path to the `python` binary it
|
|
should use during the build. If this environment variable is not set, `pyo3`
|
|
will look for whatever version of `python` is on the `$PATH`, which
|
|
unfortunately results in the crate being rebuilt when `$PATH` changes (i.e.
|
|
whenever the cargo artifacts are used in a derivation which may have different
|
|
build inputs).
|
|
|
|
The way to remedy this is to explicitly set `PYO3_PYTHON` to point to the
|
|
version of `python` that will be used by the derivation:
|
|
|
|
```nix
|
|
let
|
|
chosenPython = pkgs.python3;
|
|
in
|
|
craneLib.buildPackage {
|
|
env.PYO3_PYTHON = "${chosenPython}/bin/python";
|
|
nativeBuildInputs = [
|
|
chosenPython
|
|
];
|
|
|
|
# etc...
|
|
}
|
|
```
|