It might be better to implement this as selection instead of exclusion.

Something like:

```python
def select_backend(name, all_backends):
    for backend in all_backends:
        if backend.name == name:
            return [backend]

   raise ValueError("Unknown selected backend: {0}".format(name))
```

It also becomes more obvious how you might support multiple backend selection (though the above does not do it. --backend multiple times doesn't work, so it'll have to be changed to a comma separated list of backends probably.)