如何在 cython 中包含 C++ 所需的路径?
Posted
技术标签:
【中文标题】如何在 cython 中包含 C++ 所需的路径?【英文标题】:How to include the path needed by C++ in cython? 【发布时间】:2019-07-23 18:29:29 【问题描述】:我设法让 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-I
开关完成的。对于 Visual Studio 编译器,它是另一回事(但类似)。您需要正确配置您的 biild 系统。
【参考方案1】:
您正在寻找设置的include_dirs
参数。在您的情况下,这应该有效:
setup(...
include_dirs = ['.'],
... )
或者'..'
,你的目录树有点不寻常。
【讨论】:
以上是关于如何在 cython 中包含 C++ 所需的路径?的主要内容,如果未能解决你的问题,请参考以下文章