Como silenciar o erro "sys.excepthook está faltando"?

NB: Eu não tentei reproduzir o problema descrito abaixo no Windows, ou com versões do Python diferentes do 2.7.3.

A maneira mais confiável de obter o problema em questão é canalizar a saída do script de teste a seguir: (debaixobash):

try:
    for n in range(20):
        print n
except:
    pass

Ou seja:

% python testscript.py | :
close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr

Minha pergunta é:

Como posso modificar o script de teste acima? para evitar a mensagem de erro quando o script é executado como mostrado (em Unix /bash)

(Como mostra o script de teste, o erro não pode ser preso comtry-except.)

O exemplo acima é, reconhecidamente, altamente artificial, mas estou correndo para o mesmo problemaas vezes quando a saída de um script meu é canalizada através de algum software de terceiros.

A mensagem de erro é certamente inofensiva, mas é desconcertante para os usuários finais, então eu gostaria de silenciá-la.

EDIT: O script a seguir, que difere do original acima apenas em que redefine sys.excepthook, se comporta exatamente como o dado acima.

import sys
STDERR = sys.stderr
def excepthook(*args):
    print >> STDERR, 'caught'
    print >> STDERR, args

sys.excepthook = excepthook

try:
    for n in range(20):
        print n
except:
    pass