Я написал простой модуль C, который печатает на стандартный вывод с помощью printf.
// sample.c
func_print()
{
printf("Hello World!\n");
}
Позже я сделал обертку вокруг этого, используя SWIG
, чтобы я мог использовать func_print
и в моей программе на python. В этой программе я перенаправил стандартный вывод в виджет textctrl. Все, что я печатаю с использованием print
, печатается правильно в виджете textctrl, как и ожидалось.
# sample.py
...
sys.stdout = textctrl # textctrl is a TextCtrl widget (wxPython).
print 'Hello from Python!' # prints in the textctrl widget, as expected.
Однако, когда я вызываю функцию C func_print()
(из sample.py), она выводит на терминал вместо виджета textctrl.
func_print() # [Problem] prints to the terminal window, instead of the textctrl widget.
Почему-то кажется, что stdout
для функций в модуле C не перенаправляются должным образом. Пожалуйста, помогите мне исправить это. Спасибо.