Я думаю, что-то вроде этого будет работать, хотя это непроверенный код и интерфейс выглядит так, как будто есть более чистый способ, который ускользает от меня в настоящее время:
import warnings
# defaults to the 'myStringIO' file
def my_warning_wrapper(message, category, filename, lineno, file=myStringIO, line=None):
warnings.show_warning(message, category, filename, lineno, file, line)
warnings._show_warning = my_warning_wrapper
Загляните в Lib \ warnings.py, и вы окажетесь на правильном пути, если этого недостаточно.