2011-07-20 55 views
4

我正在运行Python 2.7,并安装了最新版本的GTK。导入GTK时出错

我试图导入GTK与下面的代码行:

import gtk 

它抛出以下错误:

Traceback (most recent call last): File "C:\GTKTutorial\tutorial.py", line 3, in import gtk File "C:\Python27\lib\site-packages\gtk-2.0\gtk__init__.py", line 40, in from gtk import _gtk ImportError: DLL load failed: The specified procedure could not be found.

我该如何解决这个问题? import pygtk正在工作,并且我安装了Glade 3.8.0。

回答

3

你从哪里得到PyGTK安装程序?尝试使用这一个:http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.22/pygtk-all-in-one-2.22.6.win32-py2.7.msi

+1

这就是我从中获得PyGTK安装程序的地方,只有我必须单独安装每个组件。当我使用all-in-one时,pygtk将不会导入。 – CodeMouse92

+0

最近,我在[Python 2.7.2安装程序](http://www.python.org/ftp/python/2.7.2/python-2.7.2)之后使用了我在最新的XP安装中链接的安装程序。 msi),它的工作完美。对不起,我不能有更多的帮助。 – dumbmatter

+0

我会再试一次。谢谢。 – CodeMouse92

2

我刚刚花了3天在我的电脑上调试此问题。这个问题可能有很多根本原因,因为导入gtk实际上会导致加载很多DLL。如果它们中的任何一个失败,则会得到相同的错误消息。对我来说,突破了

http://www.dependencywalker.com/

这是我用来分析命令

蟒蛇-i -c“进口GTK”

在我的电脑,错版zlib1的.dll位于system32目录中,防止加载gtk \ bin中的正确文件。即使我的路径中的第一个条目指向gtk \ bin,它也这样做了。

我从system32中删除了zlib1.dll(将它放在那里的应用程序应该死掉)并且导入工作正常。你的问题可能会有所不同,但依赖walker可能会给你一个错误的提示。

Windows可以有其他原因加载一个DLL,而不是放入目录或路径中的DLL。我发现博客

http://www.davidlenihan.com/2007/07/winsxs.html

有用。它描述了微软用于管理许多版本的DLL的解决方案,以及如何解决它的问题。