由于缺少 Python.h,PPA 构建失败

由于缺少 Python.h,PPA 构建失败

我正在尝试使用 PPA 为 Ubuntu 打包我的应用程序。构建失败,因为它找不到Python.h(在这里建立日志)。此库由提供libpython2.7-dev,我在构建依赖项中拥有它,并且根据构建日志它已安装。

使用 进行构建dpkg-buildpackage(或者只是使用make和进行简单安装make install)适用于我当前的 Ubuntu 14.10 全新安装。

答案1

您在文件中犯了一个小错误debian/control,您假设 python2.7 包提供了解释器。/usr/bin/python实际上是由 提供的python-minimal

这就是为什么你的Makefile在构建环境中无法按预期工作:

PYVER := $(shell python -c "import sys; print sys.version[0:3]")
CFLAGS := -g -I/usr/include/python$(PYVER) -Wall -Werror -fPIC $(OPTFLAGS) -fno-strict-aliasing

PYVER为空,因为该python命令未安装在 ppa sbuild 中。

要解决您的构建问题,只需使用以下debian/control文件:

Source: python-pyblock
Section: python
Priority: optional
Maintainer: Vojtěch Trefný <[email protected]>
X-Python-Version: >= 2.7
Build-Depends: debhelper (>= 9), python-all-dev, gettext, libdevmapper-dev, libdmraid-dev
Standards-Version: 3.9.5
Homepage: https://git.fedorahosted.org/cgit/pyblock.git/

Package: python-pyblock
Architecture: any
Depends: python2.7, python-selinux, python-parted, ${shlibs:Depends}, ${misc:Depends}
Description: Python modules for dealing with block devices
 The pyblock contains Python modules for dealing with block devices.

请注意,我仅添加了python-all-dev构建依赖项(它依赖于解释器及其-dev包)

答案2

这纯粹是猜测,但您的编译命令是:

gcc -g -I/usr/include/python -Wall -Werror -fPIC  -fno-strict-aliasing -DUSESELINUX=1 -c -o dm.o dm.c

libpython2.7-dev但是,/usr/include/python2.7根据文件列表

也许您应该考虑不同的编译标志。您的系统配置中可能有一些内容允许它使用中的标头/usr/include/python2.7,即使您包含不同的目录。

相关内容