Я пытаюсь ускорить выполнение некоторого кода в 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
%%cython --verbose
и надеяться увидеть больше. Что-то не так с вашей установкой, но я сомневаюсь, что кто-то сможет помочь удаленно. - person ead   schedule 18.04.2020