Referring to own packages in nixosModules import

You don’t need this, just set meta.mainProgram = "geotopo"; in your package.
Also, using venvs is definitely a strange way to package, just use buildPythonApplication or such: https://nixos.org/manual/nixpkgs/unstable/#building-packages-and-applications

Pass inputs into the module system and use inputs.self.packages.${pkgs.stdenv.hostPlatform.default}.default