utils.req_missing() is the Nikola-standard way to handle this.

```py
        not_found = []
        for program in programs:
            found = False
            for path in os.environ['PATH'].split(os.pathsep):
                if os.access(os.path.join(path.strip('"'), program), os.X_OK):
                   found = True
            if not found:
                not_found.append(program)

        if not_found:
            nikola.utils.req_missing(not_found, 'create speech-synthesized netcasts', python=False, optional=False)
```