python - previene IOError: [Errno 5] Error de entrada / salida cuando se ejecuta sin stdout

Tengo un script que se ejecuta automáticamente en el servidor a través de cronjob e importa y ejecuta varios otros scripts.

Algunos de ellos usan impresiones, lo que naturalmente creaIOError: [Errno 5] Input/output error porque el script se ejecuta sin ningún SSH / terminal conectado, por lo que no hay una configuración stdout adecuada.

Hay muchas preguntas sobre este tema, pero no pude encontrar a nadie que realmenteresolver suponiendo que no puedo eliminar la impresión o cambiar los scripts ejecutados.

Intenté varias cosas, incluyendo:

class StdOut(object):
    def __init__(self):
        pass
    def write(self, string):
        pass
sys.stdout = StdOut()
sys.stderr = StdOut()

y

from __future__ import print_function
import __builtin__

def print(*args, **kwargs):
        pass
    __builtin__.print = print

Pero nada de eso funciona. Supongo que solo afecta al módulo en sí y no a los módulos que importo / ejecuto más tarde.

Entonces, ¿cómo puedo crear un stub stdout que afectarátodas módulos en el proceso? Como dije, no quiero cambiar los scripts que se ejecutan desde el módulo principal, pero puedo cambiar todo dentro del módulo de importación. Y solo para aclarar: todo se importa, no se generan nuevos procesos, etc.

Gracias,

Respuestas a la pregunta(1)

Su respuesta a la pregunta