如何在cython中包含C++所需的路径

How to include the path needed by C++ in cython?

本文关键字:路径 C++ 包含 cython      更新时间:2023-10-16

我设法让Cython为一个简单的C++文件工作。但是当我试图让它为我们的项目工作时,我遇到了路径问题。

当我运行"python3.6 setup.py build_ext --inplace"时,我收到以下错误:

myapp.h:12:10: fatal error: base/file1.h: No such file or directory
 #include <base/file1.h>
          ^~~~~~~~~~~

这是我的文件夹结构:

.
|-- base
|   |-- file1.h
|   -- file1.cpp
|
|-- app
|   |-- app.pyx
|   -- setup.py
|
|-- myapp.cpp
-- myapp.h

以下是 setup.py:

from distutils.core import setup, Extension
from Cython.Build import cythonize
setup(ext_modules = cythonize(Extension(
    "app",
    sources=["app.pyx", "myapp.cpp"],
    language="c++",
)))

在myapp.h中,有这样一行:

#include <base/file1.h>

您正在寻找设置的include_dirs参数。在您的情况下,这应该有效:

setup(...
    include_dirs = ['.'],
     ... )

或者也许'..',您的目录树有点不寻常。