12

我有一个应用程序,它依赖于我为在 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,而无需从源代码重新编译一个或另一个?

4

5 回答 5

10

我让它工作得很好,它并没有给我带来太多麻烦,所以我们知道它可以完成......

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

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

另请参阅PyGTK-on-Windows 常见问题解答

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

于 2009-08-18T14:44:11.940 回答
4

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

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

这将安装 PyGTK、PyGObject、PyCairo、PyGtkSourceView2、PyGooCanvas、PyRsvg、gtk+-bundle 和 Glade。在没有 DLL 问题的情况下,这绝对是能够成功、等等所必需的import gobject一切import gtk

于 2011-03-18T20:31:46.903 回答
3

对于 64 位 Windows 用户,请参阅

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

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

于 2012-03-30T17:15:01.330 回答
1

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

请参阅此以获取多合一安装程序 http://aruiz.typepad.com/siliconisland/2006/12/allinone_win32_.html

于 2010-01-02T19:15:07.320 回答
0

如果有人计划通过嵌入式解释器运行 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。

于 2015-01-24T04:49:56.840 回答