我正在尝试使用 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
,即使您包含不同的目录。