Интеграция Cython и Python Spyder Анаконда - PullRequest
0 голосов
/ 11 мая 2018

Я новичок в Python и Spyder, и я пытаюсь цитонизировать цикл for.Я использую Spyder 3.2.7 из навигатора anaconda, поэтому я запускаю код, просто нажимая зеленую треугольную кнопку.

Мой файл pyx выглядит так:

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

Пока мой файл py:

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)) ...

При импорте только «saluti» я не получаю сообщение об ошибке и получаю сообщение «hello world», напечатанное в консоли Ipython.Если я пытаюсь импортировать функцию new_sum, я получаю ImportError: не могу импортировать имя 'new_sum' Мне кажется, что проблема в том, что если я изменяю и сохраняю pyx, сбережения не «читаются» при запуске py

...