Cython安装GCC错误

20

尝试在一个运行Ubuntu Server的小型VPS上安装Cython。

sudo apt-get install gcc

接着做...

python setup.py install

我在Cython目录中遇到了一个奇怪的错误。

running install
running build
running build_py
running build_ext
building 'Cython.Plex.Scanners' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c Cython/Plex/Scanners.c -o build/temp.linux-x86_64-2.6/Cython/Plex/Scanners.o
Cython/Plex/Scanners.c:4:20: error: Python.h: No such file or directory
Cython/Plex/Scanners.c:6:6: error: #error Python headers needed to compile C extensions, please install development version of Python.
error: command 'gcc' failed with exit status 1

我为什么需要“Python的开发版本”?目前运行的是Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)。谢谢!

2个回答

37

你需要安装Python的开发版本,也就是Python头文件(Python.h)。

sudo apt-get install python-dev

好的!我可以问一下为什么这是必要的吗?我的开发机器(Windows)只安装了标准的Python 2.6版本,而且运行得很好。不过,我是通过打包安装程序进行安装的,所以可能已经包含了所有内容。 - DizzyDoo
一个简单的答案是,Cython中的一些源文件包含了一些Python头文件,因此您需要Python头文件来编译Cython。如果您想知道为什么使用这些文件,则需要查看Cython源代码。 - binW
1
这也是因为Ubuntu和Debian选择将开发包分开的原因。 - user225312
3
标准的Windows发行版包含头文件。在某些Linux系统中,默认安装不包含它们(因为发行者认为省略它们很有趣,还有例如stdlib(tkinter)的一部分 :/)。 - user395760
我只是在CentOS 7中安装了python-devel。可能需要知道操作系统所需的Python版本。 - Oluwatobi Samuel Omisakin

4
您需要包含在Python开发版本中的头文件,即python.h。在Ubuntu中应该打包为python-dev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接