This commit is contained in:
alsaiduq-lab 2025-03-24 21:26:15 -06:00
parent 3a7ec9f943
commit e854d2515d
6 changed files with 82 additions and 40 deletions

View file

@ -29,6 +29,7 @@ in {
ffmpeg ffmpeg
gnused gnused
gdb gdb
libstdcxx5
stdenv.cc.cc.lib stdenv.cc.cc.lib
nix-prefetch-git nix-prefetch-git
binutils binutils
@ -58,6 +59,7 @@ in {
bash bash
customPkgs.fish-rust customPkgs.fish-rust
go go
ollama
sqls sqls
deno deno
redis redis

View file

@ -2,48 +2,66 @@
let let
customPkgs = pkgs.callPackage ../pkgs { inherit pkgs lib; }; customPkgs = pkgs.callPackage ../pkgs { inherit pkgs lib; };
pipConf = pkgs.writeText "pip.conf" ''
[global]
no-cache-dir = false
[install]
ignore-installed = false
[packages]
numpy = "<2.0.0"
'';
pythonEnv = pkgs.python311.buildEnv.override {
extraLibs = [
customPkgs.python-pymatting
customPkgs.python-opencv-headless
customPkgs.python-rembg
customPkgs.pythonPackages.numpy # This should be numpy 1.x
pkgs.python311Packages.i3ipc
pkgs.python311Packages.pandas
pkgs.python311Packages.matplotlib
pkgs.python311Packages.scipy
pkgs.python311Packages.requests
pkgs.python311Packages.pip
pkgs.python311Packages.virtualenv
pkgs.python311Packages.ipython
pkgs.python311Packages.six
pkgs.python311Packages.psutil
pkgs.python311Packages.pynvml
pkgs.python311Packages.pyqtgraph
pkgs.python311Packages.pyqt6
pkgs.python311Packages.cppcheck
pkgs.python311Packages.click
pkgs.python311Packages.typer
pkgs.python311Packages.rich
pkgs.python311Packages.pyyaml
pkgs.python311Packages.pytz
pkgs.python311Packages.pillow
];
};
in { in {
options.python = { options.python = {
enable = lib.mkEnableOption "System Python Environment"; enable = lib.mkEnableOption "System Python Environment";
}; };
config = lib.mkIf config.python.enable { config = lib.mkIf config.python.enable {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
(python311.withPackages (pyPkgs: with pyPkgs; [ pythonEnv
numpy
python-pymatting
python-opencv-headless
python-rembg
i3ipc
pandas
matplotlib
scipy
requests
pip
virtualenv
ipython
six
psutil
pynvml
pyqtgraph
pyqt6
click
typer
rich
pyyaml
pytz
pillow
]))
python3Packages.pip python3Packages.pip
black black
ruff ruff
uv uv
stdenv.cc.cc.lib
]; ];
# Environment variables
environment.variables = { environment.variables = {
PIP_PREFIX = "$HOME/.local"; PIP_PREFIX = "$HOME/.local";
PIP_CONFIG_FILE = "${pipConf}"; # Force pip to use our config
PYTHONPATH = "$HOME/.local/lib/python3.11/site-packages"; PYTHONPATH = "$HOME/.local/lib/python3.11/site-packages";
}; };
environment.shellAliases = { system.userActivationScripts.removeNumpy2 = ''
python = "python3.11"; if [ -d "$HOME/.local/lib/python3.11/site-packages/numpy" ]; then
}; echo "Removing NumPy from user packages to prevent conflicts..."
rm -rf "$HOME/.local/lib/python3.11/site-packages/numpy"*
fi
'';
}; };
} }

View file

@ -1,13 +1,32 @@
{ { pkgs ? import <nixpkgs> {}, lib ? pkgs.lib }:
pkgs ? import <nixpkgs> {},
lib ? pkgs.lib, let
}: { numpy-1 = pkgs.python311Packages.numpy.overridePythonAttrs (oldAttrs: rec {
version = "1.26.4";
src = pkgs.fetchPypi {
pname = "numpy";
inherit version;
sha256 = "0410j6jfz1yzm5s0v0yrc1j0q6ih4322357and7arr0jxnlsn0ia";
};
meta.priority = -1;
});
customPackages = pkgs.python311Packages.override {
overrides = self: super: {
numpy = numpy-1;
};
};
in {
fish-rust = pkgs.callPackage ./fish-rust {}; fish-rust = pkgs.callPackage ./fish-rust {};
python-pymatting = pkgs.callPackage ./python-pymatting { python-pymatting = pkgs.callPackage ./python-pymatting {
inherit lib; inherit lib;
fetchPypi = pkgs.fetchPypi; fetchPypi = pkgs.fetchPypi;
python311Packages = pkgs.python311Packages; python311Packages = customPackages;
}; };
python-opencv-headless = pkgs.callPackage ./python-opencv-headless { python-opencv-headless = pkgs.callPackage ./python-opencv-headless {
inherit lib; inherit lib;
fetchPypi = pkgs.fetchPypi; fetchPypi = pkgs.fetchPypi;
@ -15,16 +34,20 @@
pkg-config = pkgs.pkg-config; pkg-config = pkgs.pkg-config;
stdenv = pkgs.stdenv; stdenv = pkgs.stdenv;
makeWrapper = pkgs.makeWrapper; makeWrapper = pkgs.makeWrapper;
python311Packages = pkgs.python311Packages; python311Packages = customPackages;
}; };
python-rembg = pkgs.callPackage ./python-rembg { python-rembg = pkgs.callPackage ./python-rembg {
inherit lib; inherit lib;
fetchPypi = pkgs.fetchPypi; fetchPypi = pkgs.fetchPypi;
python311Packages = customPackages;
python-pymatting = pkgs.callPackage ./python-pymatting { python-pymatting = pkgs.callPackage ./python-pymatting {
inherit lib; inherit lib;
fetchPypi = pkgs.fetchPypi; fetchPypi = pkgs.fetchPypi;
python311Packages = pkgs.python311Packages; python311Packages = customPackages;
}; };
python-opencv-headless = pkgs.callPackage ./python-opencv-headless { python-opencv-headless = pkgs.callPackage ./python-opencv-headless {
inherit lib; inherit lib;
fetchPypi = pkgs.fetchPypi; fetchPypi = pkgs.fetchPypi;
@ -32,10 +55,11 @@
pkg-config = pkgs.pkg-config; pkg-config = pkgs.pkg-config;
stdenv = pkgs.stdenv; stdenv = pkgs.stdenv;
makeWrapper = pkgs.makeWrapper; makeWrapper = pkgs.makeWrapper;
python311Packages = pkgs.python311Packages; python311Packages = customPackages;
}; };
python311Packages = pkgs.python311Packages;
}; };
pythonPackages = customPackages;
vivid-icons = pkgs.callPackage ./vivid-icons { vivid-icons = pkgs.callPackage ./vivid-icons {
inherit lib; inherit lib;
stdenv = pkgs.stdenv; stdenv = pkgs.stdenv;

View file

@ -31,8 +31,8 @@ python311Packages.buildPythonPackage rec {
]; ];
propagatedBuildInputs = with python311Packages; [ propagatedBuildInputs = with python311Packages; [
numpy
setuptools setuptools
numpy
]; ];
dontUseCmakeConfigure = true; dontUseCmakeConfigure = true;

View file

@ -19,7 +19,6 @@ python311Packages.buildPythonPackage rec {
]; ];
propagatedBuildInputs = with python311Packages; [ propagatedBuildInputs = with python311Packages; [
numpy
scipy scipy
pillow pillow
numba numba

View file

@ -17,7 +17,6 @@ python311Packages.buildPythonPackage rec {
setuptools setuptools
]; ];
propagatedBuildInputs = with python311Packages; [ propagatedBuildInputs = with python311Packages; [
numpy
onnxruntime onnxruntime
pillow pillow
pooch pooch