如何允许 c printf 在 cython 单元格的 ipython 笔记本中打印?
How to allow c printf to print in ipython notebook in cython cell?
%%cython
from libc.stdio cimport printf
def test():
printf('abc')
如果我 运行 test()
,它不会打印任何东西。
目前我正在做一些愚蠢的事情:
cdef char s[80]
sprintf(s, 'something')
print s
在 cython 中使用 printf
的更好方法是什么?为什么不打印?
输出将打印在您的终端(控制台)运行 Jupyter 笔记本中。虽然不确定如何在 Jupyter 中显示它。
您可以使用 wurlitzer
包来捕获 C 级标准输出/标准错误并将其重定向到 IPython。
例如,在您的 Jupyter notebook 中包含以下代码块:
%load_ext Cython
%load_ext wurlitzer
%%cython
from libc.stdio cimport printf
def test():
printf('abc')
test()
# prints "abc"
%%cython
from libc.stdio cimport printf
def test():
printf('abc')
如果我 运行 test()
,它不会打印任何东西。
目前我正在做一些愚蠢的事情:
cdef char s[80]
sprintf(s, 'something')
print s
在 cython 中使用 printf
的更好方法是什么?为什么不打印?
输出将打印在您的终端(控制台)运行 Jupyter 笔记本中。虽然不确定如何在 Jupyter 中显示它。
您可以使用 wurlitzer
包来捕获 C 级标准输出/标准错误并将其重定向到 IPython。
例如,在您的 Jupyter notebook 中包含以下代码块:
%load_ext Cython
%load_ext wurlitzer
%%cython
from libc.stdio cimport printf
def test():
printf('abc')
test()
# prints "abc"