{ description = "Pre-built CPU-only OpenCV packages for Python. "; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; opencv-python-related.url = "gitlab:all-dressed-programming/opencv-python-related"; opencv-python-related.inputs.nixpkgs.follows = "nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; }; nixConfig = { extra-substituters = [ "https://cuda-maintainers.cachix.org" ]; extra-trusted-public-keys = [ "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=" ]; }; outputs = { self, nixpkgs, flake-utils, opencv-python-related }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { system = system; config.allowUnfree = true; }; pythonPackages = pkgs.python312Packages // opencv-python-related.packages.${system}.python312Packages; virtual-env = pkgs.python312.withPackages (ps: [ ps.matplotlib ps.torchWithCuda pythonPackages.opencv4 pythonPackages.boxmot pythonPackages.ultralytics pythonPackages.click ]); in { packages = { env = virtual-env; }; devShells.default = pkgs.mkShell { buildInputs = [ virtual-env pkgs.yt-dlp pkgs.ffmpeg_7 ]; }; }); }