Я изучаю Cython в Linux и работаю, используя пример на страницах учебного пособия Cython:
https://cython.readthedocs.io/en/latest/src/tutorial/cython_tutorial.html#primes
Я изучаю пример простых чисел . У которого есть код:
def primes(int nb_primes):
cdef int n, i, len_p
cdef int p[1000]
if nb_primes > 1000:
nb_primes = 1000
len_p = 0 # The current number of elements in p.
n = 2
while len_p < nb_primes:
# Is n prime?
for i in p[:len_p]:
if n % i == 0:
break
# If no break occurred in the loop, we have a prime.
else:
p[len_p] = n
len_p += 1
n += 1
# Let's return the result in a python list:
result_as_list = [prime for prime in p[:len_p]]
return result_as_list
Я сохранил код как primes.pyx и запустил setup.py.
, который выглядит так:
from setuptools import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize("primes.pyx")
)
Однако когда я импортирую простые числа, используя
>>> import primes
, я получаю сообщение об ошибке:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/vagrant/merlin/scoleman/test_cython/primes.py", line 1
def primes(int nb_primes):
У меня есть файлы primes.c
и primes.pyx
. Почему я получаю эту ошибку?