Я пытаюсь ускорить выполнение некоторого кода в Jupyter, используя cython, но по какой-то причине он не «запоминает» функции после запуска ячейки %% cython. Похоже, что это не проблема с любыми другими примерами, которые я нашел в Интернете (например: https://jakevdp.github.io/blog/2017/12/11/live-coding-cython-ising-model/). Я использую Cython 0.29.15 и python 3.7.3.
Пример:
%load_ext cython
%%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