Otherwise references to the Python interpreter inside the set are wrong, as demonstrated by:
``` nix
with import <nixpkgs> { };
let
python' = python3.override {
packageOverrides = final: prev: { requests = prev.requests.overridePythonAttrs(old: { version = "1337"; }); };
};
in python'.pkgs.python.pkgs.requests
```
which returns the _non_ overriden requests.
And the same with `self`:
```
with import <nixpkgs> { };
let
python' = python3.override {
self = python';
packageOverrides = final: prev: { requests = prev.requests.overridePythonAttrs(old: { version = "1337"; }); };
};
in python'.pkgs.python.pkgs.requests
```
which returns the overriden requests.
This can manifest itself as file collisions when constructing environments or as subtly incorrect dependency graphs.
Frigate assumes, that all its dependencies are in the same site-packages
directory as frigate itself, which is not the case with how we link
together environments using the PYTHONPATH.
Started failing when opencv was replaced by opencv4 and caused a
conflict in the python environment due to multiple instances of the same
library being present.
Frigate uses string concat to create some paths, which relies on the
cache path ending with a trailing slash.
I've meanwhile proposed a fix upstream, that will likely
be part of the next release.