如何让c printf在cython单元格的ipython笔记本中打印?

时间:2015-03-25 17:36:57

标签: c cython ipython-notebook

%%cython
from libc.stdio cimport printf
def test():
    printf('abc')

如果我运行test(),它就不会打印任何内容。

目前我正在做一些愚蠢的事情:

cdef char s[80]
sprintf(s, 'something')
print s

在cython中使用printf的更好方法是什么?为什么不打印?

2 个答案:

答案 0 :(得分:2)

您可以使用wurlitzer包捕获C级stdout / stderr并将其重定向到IPython。

例如,在Jupyter笔记本中包含以下代码块:

%load_ext Cython
%load_ext wurlitzer
%%cython
from libc.stdio cimport printf
def test():
    printf('abc')
test()
# prints "abc"

答案 1 :(得分:0)

输出将打印在运行Jupyter笔记本的终端(控制台)中。不知道如何在Jupyter中显示它。