【问题标题】:How do I install PyGTK / PyGobject on Windows with Python 2.6?如何使用 Python 2.6 在 Windows 上安装 PyGTK / PyGobject?
【发布时间】:2010-11-20 14:59:55
【问题描述】:

我有一个应用程序,它依赖于我为在 Linux 上工作而构建的 PyGTK、PyGobject 和 PyCairo。我想将它移植到 Windows,但是当我执行 import gobject 时,我得到了这个:

Traceback (most recent call last):
    import gobject
  File "C:\Python26\lib\site-packages\gtk-2.0\gobject\__init__.py", line 30, in <module>
    from gobject.constants import *
  File "C:\Python26\lib\site-packages\gtk-2.0\gobject\constants.py", line 22, in <module>
    from _gobject import type_from_name
ImportError: DLL load failed: The specified procedure could not be found.

这似乎是由于从使用 MinGW 构建切换到 Microsoft Visual Studio 造成的,如 Python Bug 3308 (closed: wontfix) 所述。

有没有什么方法可以在 Windows 上与 Python 2.6 一起安装 PyGTK/PyGObject,而无需从源代码重新编译一个或另一个?

【问题讨论】:

    标签: python pygtk mingw pygobject


    【解决方案1】:

    我的工作正常,并没有给我带来太多麻烦,所以我们知道可以做到...

    请记住,您可能需要在 Windows 机器上安装以下所有内容:

    我怀疑在您的情况下,PyGTK 库没有找到 DLL 所在的 GTK+ 运行时目录。您应该将环境变量 GTK_BASEPATH 设置为您的 GTK+ 运行时目录(通常是 C:\GTK)。

    另请参阅PyGTK-on-Windows FAQ

    现在,如果您尝试使用 Py2EXE 编译 PyGTK 的 Python,这有点复杂,但也可以这样做...

    【讨论】:

    • ewall: 为什么引用只适用于 32 位?我们如何为 64 位 Windows 7 或 Windows 8 做同样的事情?你能分享一下吗(因为在谷歌搜索中你的链接经常出现在结果中)-ftp.gnome.org/pub/GNOME/binaries/win64
    • @YumYumYum:唉,我的答案现在已经超过 4 年了,大约比 Windows 7 向公众发布还要早 2 个月!我不记得从那以后我什至试图让旧的 Python 2.6 在更新的 x64 Windows 上运行,所以我没有资格发表评论......但我当然可以将 x64 下载链接添加到帖子中,带有通常的 YMMV 免责声明。另请注意下面digitalPBK的回答。 :)
    • 如果没有 PyGobject,我在尝试安装 PyCairo 时会出现 C 运行时错误,感谢您指导我安装 PyGobject 并解决我的安装问题的提示。
    【解决方案2】:

    PyGTK 一体式安装程序最近已更新:

    http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.22/

    这将安装 PyGTK、PyGObject、PyCairo、PyGtkSourceView2、PyGooCanvas、PyRsvg、gtk+-bundle 和 Glade。这绝对是能够成功import gobjectimport gtk 等所需的一切,而不会出现 DLL 问题。

    【讨论】:

      【解决方案3】:

      对于 64 位 Windows 用户,请参阅

      http://digitalpbk.blogspot.in/2012/03/installing-pygtk-pypango-and-pycairo-on.html

      以上步骤将在 64 位上给出 Invalid DLL 错误。

      【讨论】:

        【解决方案4】:

        你应该有 pygtk、pycairo、pygboject 和 gtk+ 运行时...

        查看此内容以了解多合一安装程序 http://aruiz.typepad.com/siliconisland/2006/12/allinone_win32_.html

        【讨论】:

          【解决方案5】:

          如果有人计划通过嵌入式解释器运行 PyGTK 并且 C/C++ 代码已经在使用 GTK,请小心安装 PyGTK 捆绑包。 PyGTK 捆绑包不会将其 GTK 运行时添加到 PATH。

          在这种情况下,C 代码可能会从 PATH 中获取 GTK(因为您可能已经安装了 GTK 捆绑包),而 Python 将使用单独的 GTK 运行时库集。

          因此,在我的情况下,C GUI 或 Python GUI 曾经正常运行,但在一起运行时会发生冲突。

          由于我使用 Psychopy 作为我的基础 python 集合,为了解决这个问题,我刚刚在 Psychopy 之上安装了 PyGTK PyGTK、Pycairo、Pygobject。

          除了只使用一组 GTK 运行时之外,在初始化 python 解释器之后,我还必须通过 PyGTK(而不是通过我的 C 代码中的 gtk_init (&argc, &argv))在我的 C 代码中初始化 GTK。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-02-17
            • 2012-11-17
            • 1970-01-01
            • 1970-01-01
            • 2010-10-21
            相关资源
            最近更新 更多