我正在尝试使用cython在Jupyter中更快地运行某些代码,但是由于某些原因,在%% cython单元运行后,它无法“记住”函数。我在网上找到的任何其他示例(例如:https://jakevdp.github.io/blog/2017/12/11/live-coding-cython-ising-model/)似乎都不是问题。 我正在使用Cython 0.29.15和python 3.7.3。
示例:
%%cython
def function(x):
y = 2*x
return y
function(1)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-4-d7befaefa369> in <module>
----> 1 function(1)
NameError: name 'function' is not defined
cpdef
我尝试过cdef
和%%cython
cpdef int a = 0
for i in range(10):
a += i
print(a)
,但它们提供了相同的错误输出。
另一个例子:
print(a)
什么都没打印
下一个单元格:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-12-bca0e2660b9f> in <module>
----> 1 print(a)
NameError: name 'a' is not defined
{{1}}
答案 0 :(得分:1)
我知道了。
%load_ext cython
%%cython
def function(x):
y = 2*x
return y
function(1)
2
可能存在一些安装问题。我不确定,我是新手,但是
。尝试重新安装cython-无效。
。尝试重新安装anaconda3--无效。
。注意到我的终端正在使用python2,然后将其切换为python3 (https://dev.to/irfnhm/how-to-set-python3-as-a-default-python-version-on-mac-4jjf)
。然后重新安装了anaconda3(https://towardsdatascience.com/how-to-successfully-install-anaconda-on-a-mac-and-actually-get-it-to-work-53ce18025f97)
我不知道为什么这行得通(再次,是新手),但希望这会在将来对某人有所帮助。