首页 > 解决方案 > 使用 gcc 编译 cython:#include "ios" 中没有这样的文件或目录

问题描述

docprep.pyx给定一个简单的文件

from spacy.structs cimport TokenC

print("loading")

并试图通过 cythonize 它

cythonize -3 -i docprep.pyx

我收到以下错误消息

docprep.c:613:10: fatal error: ios: No such file or directory
 #include "ios"
          ^~~~~
compilation terminated

从路径可以看出,该系统安装了 Python 3.7 的 Anaconda。numpy,spacy并且cython都是通过conda.

标签: pythoncython

解决方案


就我而言,它使用@mountrix 提示,只需将其添加language="c++"到您的 setup.py 中,例如:

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


extensions = [
    Extension("processing_module", sources=["processing_module.pyx"], include_dirs=[numpy.get_include()], extra_compile_args=["-O3"], language="c++")
]

setup(
    name="processing_module",
    ext_modules = cythonize(extensions),
)

推荐阅读