如何为Python编译C扩展

毫威

我正在尝试https://github.com/lthiery/SPI-Py通过运行来安装(在运行Raspbian的Raspberry Pi上)sudo python setup.py install

这失败并显示错误

spi.c:20:20: fatal error: Python.h: No such file or directory
 #include <Python.h>

大概我需要安装一些库,但是SPI-Py的“文档”几乎不存在。

我运行其他c程序没有问题

有一个 /usr/lib/pypy-upstream/include/Python.h

瑞安

看来C编译器(可能是gcc)找不到Python.h。您可以编辑SPI-Py的源代码以指向PyPy的版本,也可以安装适当的python-dev软件包来执行SPI-Py的安装。

安装python-dev

这是侵入性最小的方法,但是由于您的系统上已经有PyPy,因此它可能被认为是“笨拙的”。如果您使用的是Python 2,请获取该dev软件包:

sudo apt-get install python-dev

或者,要安装Python 3 dev软件包:

sudo apt-get install python3-dev

拥有适当的开发包之后,请尝试再次安装SPI-Py。如果成功,则可以根据需要安全地删除Python开发包。要删除Python 2开发包:

sudo apt-get purge python-dev

或者,要删除Python 3 dev软件包:

sudo apt-get purge python3-dev

在执行任一命令之后,可以使用以下命令删除它们的依赖关系:

sudo apt-get autoremove

修改SPI-Py

请注意,我尚未测试此解决方案。要强制SPI-Py使用PyPy的“ Python.h”,您可能必须编辑spi.c文件。更改以下行:

module1 = Extension('spi', sources = ['spi.c'])

到:

module1 = Extension('spi',
                    include_dirs = ['/usr/lib/pypy-upstream/include/'],
                    sources = ['spi.c'])

之后,尝试再次安装SPI-Py。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章