Вы не можете печатать, потому что sys.stdout
недоступен, если не запущен как сеанс консоли.
Вместо использования операторов print
вы можете рассмотреть возможность использования модуля logging
, чтобы вы могли установить уровень журнала и записывать все критические данные в журнал системных событий.
Следует отметить, что вы все равно можете заставить его работать (или молча игнорировать проблему), выполнив что-то вроде этого:
Для записи в файл для каждого потока вывода:
import sys
sys.stdout = open('stdout.txt', 'w')
sys.stderr = open('stderr.txt', 'w')
Для записи в один файл:
import sys
sys.stdout = sys.stderr = open('output.txt', 'w')
Или игнорировать все операторы печати:
import sys
class NullWriter(object):
def write(self, value): pass
sys.stdout = sys.stderr = NullWriter()