【问题标题】:How to compile pygtk from source for python2.6 on ubuntu 12.04如何在 ubuntu 12.04 上从源代码为 python2.6 编译 pygtk
【发布时间】:2012-04-26 08:27:42
【问题描述】:

我有一个卡在 python2.6 的应用程序。由于特定且复杂的扩展,我无法将其移植到 python2.7。

问题是 12.04 删除了 python2.6 的 pygtk,因为 python2.7 成为默认的 python 版本。

然后我需要从源代码为 python2.6 构建 pygtk。我已按照自述文件进行操作,但我做错了什么。 (文档很简洁)

构建看起来不错,因为如果我在解压缩的存档文件夹中,我可以导入 gtk(我执行 python -c 'import gtk')。 但是 make install 不能正常工作。

AFAICT,我已将 PYTHON 和 PYTHONPATH 变量导出到正确的路径。

PYTHONPATH=/usr/lib/python2.6/dist-packages
PYTHON=/usr/bin/python2.6

你知道这个配置有什么问题吗?

【问题讨论】:

    标签: python compilation makefile pygtk


    【解决方案1】:

    我不知道我是否比你走得更远,但这就是我目前正在做的事情。也许我们可以一起解决这个问题。

    $ sudo su
    # pip install pygtk
    

    这会产生一堆错误,包括“要以受支持的方式构建 PyGTK,请阅读 INSTALL 文件”。在阅读了这些内容和其他内容之后,我尝试了这个:

    # cd build/pygtk
    # chmod 755 configure
    # PYTHON=/usr/bin/python2.6 ./configure --prefix=/usr
    

    这会找到正确的 Python 版本,但现在找不到 GLIB。错误包括,“这通常意味着 GLIB 安装不正确。”当我查看config.log 时,我发现了这个错误,“致命错误:glib.h:没有这样的文件或目录”。我发现 a help page 提示如果您尚未安装 GLIB 的开发版本,您可能会收到此错误。

    # apt-get install libglib2.0-dev
    # PYTHON=/usr/bin/python2.6 ./configure --prefix=/usr
    

    进步!我现在看到一个新错误“找不到包 'pygobject-2.0'”。该错误出现在a forum post 中,并建议安装python-gobject-dev

    # apt-get install python-gobject-dev
    # PYTHON=/usr/bin/python2.6 ./configure --prefix=/usr
    

    没有错误,所以我尝试运行makemake install。第一个有效,但安装失败并出现错误“/bin/bash: line 16: ../py-compile: Permission denied”。以 root 身份运行时,权限被拒绝很奇怪。晃了一会儿,我回到配置脚本的输出并看到一条消息,“正在检查 PYCAIRO...否”,然后是另一条消息,“由于缺少 pycairo 而没有检查 gtk”。一个小小的猜测让我安装了另一个模块。

    # apt-get install python-cairo-dev
    # PYTHON=/usr/bin/python2.6 ./configure --prefix=/usr
    

    这解决了 pycairo 投诉,但还有更多,包括 GTK。

    # apt-get install python-gtk2-dev
    # PYTHON=/usr/bin/python2.6 ./configure --prefix=/usr
    

    这解决了大部分投诉,只是缺少 LIBGLADE。

    # apt-get install libglade2-dev
    # PYTHON=/usr/bin/python2.6 ./configure --prefix=/usr
    

    好的,所有模块都将被构建,但它显示“Numpy support: no”。

    # make
    # make install
    

    这会失败并出现我之前看到的相同错误“/bin/bash: line 16: ../py-compile: Permission denied”。

    我先把它放在这里,稍后再回来。

    【讨论】:

      【解决方案2】:

      尝试对 2.6 使用 easy_install,假设在您的 ubuntu 中安装了 2.6 和 2.7。您可以使用 easy_install(默认为 2.7)和 easy_install-2.6 来安装 2.6 的专用软件包。

      【讨论】:

        猜你喜欢
        • 2014-10-24
        • 1970-01-01
        • 1970-01-01
        • 2017-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多