{ pkgs ? import { }, python3 ? pkgs.python3Full, extraPackages ? [ ], extraLibs ? [ ], }: let inherit (pkgs) lib; ldlibs = lib.makeLibraryPath ( (with pkgs; [ stdenv.cc.cc glib glibc zlib zstd ]) ++ extraLibs ); pythonWrapped = pkgs.symlinkJoin { name = "python"; paths = [ python3 ]; buildInputs = [ pkgs.makeWrapper ]; postBuild = '' for file in $out/bin/*; do wrapProgram "$file" --prefix LD_LIBRARY_PATH : "${ldlibs}"; done ''; }; in pkgs.mkShellNoCC { packages = [ pythonWrapped pkgs.uv ] ++ extraPackages; }