I'm new on python and Spyder and I'm trying to cythonize a for loop. I'm using Spyder 3.2.7 from anaconda navigator, so I run the code by just pushing the green triangular button.
My pyx file looks like:
import numpy as np
def saluti():
  print('hello world')
def new_sum(double[:] X,  double[:] beta, double[:,:] theta):
  cdef int N = X.shape[0]
  cdef double[:] Y = np.zeros(N)
  cdef int i, j
  for i in range(N):
      for j in range(i):
          Y[i] += beta[j] * np.exp(-theta[i, j]*(X[i] - X[j]))
  return Y
While my py file:
import numpy as np
import pyximport
pyximport.install()
from prova_cythonn import saluti, new_sum
def old_sum (x, beta, theta):
  N = x.shape[0]
  y = np.zeros(N)
  for i in range(N):
     for j in range(i):
         y[i] = y[i] + beta[j]*np.exp(-theta[i, j]*(x[i] - x[j]))
  return y
... do stuff (like print(np.sum(old_sum) or print(np.sum(new_sum)) ...
When importing 'saluti' only, I get no error and obtain the 'hello world' message printed in the Ipython console. If I try to import the new_sum function I get ImportError: cannot import name 'new_sum' It seems to me that the problem is that if I modify and save the pyx savings are not 'read' when launching the py