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
gnused
gdb
libstdcxx5
stdenv.cc.cc.lib
nix-prefetch-git
binutils
@ -58,6 +59,7 @@ in {
bash
customPkgs.fish-rust
go
ollama
sqls
deno
redis

View file

@ -2,48 +2,66 @@
let
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 {
options.python = {
enable = lib.mkEnableOption "System Python Environment";
};
config = lib.mkIf config.python.enable {
environment.systemPackages = with pkgs; [
(python311.withPackages (pyPkgs: with pyPkgs; [
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
]))
pythonEnv
python3Packages.pip
black
ruff
uv
stdenv.cc.cc.lib
];
# Environment variables
environment.variables = {
PIP_PREFIX = "$HOME/.local";
PIP_CONFIG_FILE = "${pipConf}"; # Force pip to use our config
PYTHONPATH = "$HOME/.local/lib/python3.11/site-packages";
};
environment.shellAliases = {
python = "python3.11";
};
system.userActivationScripts.removeNumpy2 = ''
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 {};
python-pymatting = pkgs.callPackage ./python-pymatting {
inherit lib;
fetchPypi = pkgs.fetchPypi;
python311Packages = pkgs.python311Packages;
python311Packages = customPackages;
};
python-opencv-headless = pkgs.callPackage ./python-opencv-headless {
inherit lib;
fetchPypi = pkgs.fetchPypi;
@ -15,16 +34,20 @@
pkg-config = pkgs.pkg-config;
stdenv = pkgs.stdenv;
makeWrapper = pkgs.makeWrapper;
python311Packages = pkgs.python311Packages;
python311Packages = customPackages;
};
python-rembg = pkgs.callPackage ./python-rembg {
inherit lib;
fetchPypi = pkgs.fetchPypi;
python311Packages = customPackages;
python-pymatting = pkgs.callPackage ./python-pymatting {
inherit lib;
fetchPypi = pkgs.fetchPypi;
python311Packages = pkgs.python311Packages;
python311Packages = customPackages;
};
python-opencv-headless = pkgs.callPackage ./python-opencv-headless {
inherit lib;
fetchPypi = pkgs.fetchPypi;
@ -32,10 +55,11 @@
pkg-config = pkgs.pkg-config;
stdenv = pkgs.stdenv;
makeWrapper = pkgs.makeWrapper;
python311Packages = pkgs.python311Packages;
python311Packages = customPackages;
};
python311Packages = pkgs.python311Packages;
};
pythonPackages = customPackages;
vivid-icons = pkgs.callPackage ./vivid-icons {
inherit lib;
stdenv = pkgs.stdenv;

View file

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

View file

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

View file

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