Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Cython素数示例-语法错误:无效语法_Python_Cython - Fatal编程技术网

Python 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

我正在学习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
    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):