Python Cython素数示例-语法错误:无效语法
我正在学习Linux中的Cython,正在学习Cython教程页面上的示例: 我正在研究素数的例子。其代码如下:Python Cython素数示例-语法错误:无效语法,python,cython,Python,Cython,我正在学习Linux中的Cython,正在学习Cython教程页面上的示例: 我正在研究素数的例子。其代码如下: 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
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
但是,当我使用
>>> 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):
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/home/vagrant/merlin/scoleman/test\u cython/primes.py”,第1行
def素数(int nb_素数):
我有
primes.c
和primes.pyx
文件。为什么会出现此错误?您错过了将其构建到pyd
中的步骤
创建setup.py
:
从设置工具导入设置
从Cython.Build导入cythonize
设置(
ext_modules=cythonize(“primes.pyx”),
)
然后在命令行中运行python setup.py build\u ext--inplace
来构建它
这些位于文档的上半部分。前三行的语法不正确。请告诉我它们有什么问题……请尝试
int x
,而不是int(x)
将其转换为整数。如果您按照本教程前面所述的步骤运行,例如。,导入和setup(ext_modules=cythonize(“primes.pyx”)…
?此外,您的错误消息显示文件是primes.py
,而不是它应该要求的primes.pyx
。Anderson-是的,我运行了安装程序(我已将代码添加到问题中)。很抱歉,我是新手
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):