使用include_path作为cythonize中的关键字的Cython编译错误

时间:2014-05-25 16:49:25

标签: python cython

我有一个名为'test.pyx'的代码段:

import numpy as np
cimport numpy as np

print(np.arange(10))

然后我写了两个setup.py来编译它们。第一个工作正常:

from distutils.core import setup
from distutils.extension import Extension
from Cython.Build import cythonize
import numpy as np

extensions = [
    Extension('test', ['test.pyx'], include_dirs = [np.get_include()]),
    ]

setup(
    ext_modules = cythonize(extensions)
    )

这个不起作用(也来自http://docs.cython.org/src/reference/compilation.html上的例子):

from distutils.core import setup
from Cython.Build import cythonize
import numpy as np


setup(
    ext_modules = cythonize('./test.pyx', include_path=[np.get_include()])
    )

它说:./ test.c(346):致命错误C1083:无法打开包含文件:'numpy / arrayobject.h':没有这样的文件或目录。

我在Windows 64位上使用Python 3.3 64位,使用WinSDK 7.1。

1 个答案:

答案 0 :(得分:2)

这是一个Cython文档错误,另请参阅https://github.com/cython/cython/issues/1480