python - предотвращать IOError: [Errno 5] Ошибка ввода / вывода при работе без stdout

У меня есть скрипт, который автоматически запускается на сервере через cronjob, и он импортирует и запускает несколько других скриптов.

Некоторые из них используют принты, что естественно создаетIOError: [Errno 5] Input/output error потому что скрипт выполняется без подключения к SSH / терминалу, поэтому нет правильной настройки stdout.

Есть много вопросов на эту тему, но я не смог найти никого, кто на самом делерешать это, при условии, что я не могу удалить печать или изменить выполненные сценарии.

Я пробовал несколько вещей, в том числе:

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

а также

from __future__ import print_function
import __builtin__

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

Но ничего из этого не работает. Я предполагаю, что это влияет только на сам модуль, а не на модули, которые я импортирую / запускаю позже.

Итак, как я могу создать заглушку stdout, которая повлияет навсе модули в процессе? Как я уже сказал, я не хочу менять скрипты, которые выполняются из основного модуля, но я могу изменить все внутри модуля импорта. И просто, чтобы прояснить - все импортируется, новые процессы не запускаются и т. Д.

Спасибо,

Ответы на вопрос(1)

Ваш ответ на вопрос