我正在尝试在 Ubuntu 10.04 上配置 Python2.7 作为替代包。
我得到了 Deadsnakes PPA
我设置了 pip 和 virtualenv
现在,我正在尝试构建 PyQt(PySide 似乎也有类似的问题,因为 pip 不受支持)
我已经激活了virtualenv并且下载了SIP。
(qtenv)~/sip-4.13.3$ python2.7 configure.py
(qtenv)~/sip-4.13.3$ make
gcc -c -pipe -fPIC -O2 -w -DNDEBUG -I. -I/usr/include/python2.7 -o siplib.o siplib.c
siplib.c:20:20: error: Python.h: No such file or directory
当然,此后出现了大量错误
据推测,我需要 python-dev 作为 Python 标头,但我已经在常规环境中安装了它(Ubuntu 10.04 上的 python 2.6)。
那么,如何获取 python2.7 版本的头文件?
看来我距离剃掉牦牛毛只有几步之遥了……
对于其他读者来说,概要...
OP 正在运行 Ubuntu 10.4(默认情况下使用旧版本的 Python2.6)但需要 Python2.7 和 PyQt 包,后者依赖于 SIP 包(来自 PyQt 的作者)。
OP 已安装并正在使用 virtualenv,它允许您安装多个版本的 Python。
PyQt 是 Python 和 Qt C 库的绑定。它的安装需要针对 Python 头文件进行编译(例如,位于 /usr/local/include/python2.6 或 ...2.7 中的 Python.h)
Ubuntu 的标准安装没有这些 Python 头文件。它们可以作为软件包 python-dev 安装,但它们将与已安装的 Python 版本(例如 2.6)匹配。
显然,OP 已为 Python2.6 安装了 python-dev(并且 virtualenv 可以看到它)。OP 将目录更改为 SIP 目录并运行 configure 脚本,但由于它是由 Python2.7 执行的,因此它配置了 SIP 的 make 脚本以查找 Python2.7 头文件。OP 需要将 Python2.7 的 python-dev 包安装到运行 Python2.7 的第二个虚拟 Python 环境中。
(我也尝试在 Ubuntu 12.04 上构建 SIP 和 PyQt,但也找不到 /usr/local/include/Python.h。我安装了 python-dev,它安装到 /usr/include/python2.7。也许 PyQt 的配置脚本有缺陷。这是 Linux 上的一个常见问题,没有绝对标准的安装位置,尤其是在可能安装某个东西的多个版本时。)
答案1
您需要python2.7-dev
来自同一 PPA 的软件包。软件包 foo 的头文件 foo 通常位于 中foo-dev
。