将python脚本编译为C时如何修复Cython标头错误

时间:2019-04-05 02:17:14

标签: python c cython cythonize

按照此SO post在命令行上使用cython时,我知道如何在我的script.c脚本中嵌入Python解释器。

但是,不幸的是,我的.c文件的标题中出现以下错误。

/* Generated by Cython 0.29.6 */

#define PY_SSIZE_T_CLEAN
#include "Python.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
    #error Cython requires Python 2.6+ or Python 3.3+.
#else

由于我使用的是MacOS,因此我通过自制软件安装了python,因此我也知道我的标头位于以下目录中。

  

/usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/Headers

了解Python标头所在的位置后,如何使用cython在C代码中编译Python代码以使其成为可移植的可执行文件,该如何解决我的错误?

1 个答案:

答案 0 :(得分:0)

您是否已安装python开发人员?
Linux:

sudo apt-get install python python-dev python-all python-all-dev

编辑:没有看到Mac对不起。您可能需要python-devel,尽管brew也有头文件:

brew reinstall python