JOH*_*OHN 4 python cython python-3.x jupyter-notebook
我正在寻找合并一些cython来加速我的代码.我遇到了在Jupyter中运行cython代码的问题.
单元格1:
%%cython
cdef fuc():
cdef int a = 0
for i in range(10):
a += i
print(a)
Run Code Online (Sandbox Code Playgroud)
细胞2:
fuc()
Run Code Online (Sandbox Code Playgroud)
错误:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-48-10789e9d47b8> in <module>()
----> 1 fuc()
NameError: name 'fuc' is not defined
Run Code Online (Sandbox Code Playgroud)
但如果我这样做,它工作正常.
%%cython
def fuc():
cdef int a = 0
for i in range(10):
a += i
print(a)
Run Code Online (Sandbox Code Playgroud)
看起来cdef在Jupyter中的使用方式不同,我怎么能在Jupyter笔记本中使用cdef?
cdef函数只能从Cython而不是Python调用.文件说
在Cython模块中,Python函数和C函数可以自由地相互调用,但只能通过解释的Python代码从模块外部调用Python函数.
(已经声明"C函数"由cdef和"Python函数" 定义def.)
请改用defCython中的函数.它仍然由Cython编译.您仍然可以cdef在def函数中键入内容.
| 归档时间: |
|
| 查看次数: |
1254 次 |
| 最近记录: |