I guess I’ll answer my own question. From what I can tell, NixOS has no support for using unpackaged Python scripts outside of a dev shell. Judging from an earlier discussion, on NixOS, one is expected to package just about every script, with the possible exception of some very simple shell scripts. It might let you get away with using an unpackaged Python script, but it’s not a supported use case.
Unfortunately, the tooling for packaging small scripts has what another poster described as “an unpleasant edge case”, where if a Python script relies on a packaged Python module that needs a hook to run (like wrapGAppsHook*), then one’s choices are to manually supply the environment variable value in the makeWrapperArgs argument of the writePython3* Nix-writer that the hook would normally provide or to work with a more complex tool like buildPythonApplication.
Am I about correct?