nixos/legacy_modules/dev/python.nix

36 lines
933 B
Nix
Raw Normal View History

2025-02-18 20:17:57 +01:00
{
pkgs,
lib,
2025-02-18 20:17:57 +01:00
pkgsUnstable,
...
}: let
# Sets LD_LIBRARY_PATH for various python-based tools
# Some python packages requires shared libraries to build C extensions.
mkWrapLDLibraryPath = pkg: let
mainProgram = pkg.meta.mainProgram or pkg.pname or (lib.getName pkg);
in
pkgs.symlinkJoin {
name = "${pkg.name}-wrapped";
paths = [pkg];
nativeBuildInputs = [pkgs.makeWrapper];
postBuild = ''
wrapProgram $out/bin/${mainProgram} \
--run "export LD_LIBRARY_PATH=\$NIX_LD_LIBRARY_PATH"
'';
};
in {
2025-02-18 20:17:57 +01:00
environment.systemPackages = [
(mkWrapLDLibraryPath pkgsUnstable.uv)
(mkWrapLDLibraryPath pkgsUnstable.rye)
(mkWrapLDLibraryPath pkgs.python3)
(mkWrapLDLibraryPath pkgsUnstable.prek)
2025-02-18 20:17:57 +01:00
];
2025-02-20 22:50:06 +01:00
2025-02-19 23:42:24 +01:00
# uv tool adds executable to $HOME/.local/bin, so add it to PATH
fireproof.home-manager = {
home.sessionPath = [
"$HOME/.local/bin"
];
};
2025-02-18 20:17:57 +01:00
}