如何使用Python 2.6在Windows上安装PyGTK / PyGobject?

时间:2009-08-18 14:31:08

标签: python pygtk mingw pygobject

我有一个应用程序,它依赖于我为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 3308closed: wontfix)所示。

有没有办法以一种可以在Windows上使用Python 2.6的方式安装PyGTK / PyGObject,而无需从源代码重新编译其中一个?

5 个答案:

答案 0 :(得分:11)

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

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

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

另请参阅PyGTK-on-Windows FAQ

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

答案 1 :(得分:4)

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

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

这将安装PyGTK,PyGObject,PyCairo,PyGtkSourceView2,PyGooCanvas,PyRsvg,gtk + -bundle和Glade。在没有DLL问题的情况下,能够成功import gobjectimport gtk等绝对是必不可少的。

答案 2 :(得分:3)

对于64位Windows用户,请参阅

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

以上步骤将在64位上给出无效的DLL错误。

答案 3 :(得分:1)

你应该有pygtk,pycairo,pygboject和gtk + runtime ...

在一台安装程序中查看此内容 http://aruiz.typepad.com/siliconisland/2006/12/allinone_win32_.html

答案 4 :(得分:0)

如果计划通过嵌入式解释器运行PyGTK并且C / C ++代码已经在使用GTK,请小心安装PyGTK bundle pack。 PyGTK bundle pack不会将其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(&amp; argc,&amp; argv))在我的C代码中初始化GTK。