4

我下载了pygtk中描述的所有内容进行安装。一切都很顺利,直到我尝试输入时"import gtk",它抛出ImportError如下:

from gtk import _gtk  
ImportError: DLL load failed: ...(something unreadable)

然后我再次重新安装了pygtk-2.22.0,同样的问题存在。那请问该怎么办?提前致谢!

4

5 回答 5

2

您描述的错误通常是由 python 绑定(pygtk/pygobject/pycairo)无法加载它需要正常运行的 dll 引起的。大多数错误是由以下原因引起的:

  • GTK+ 运行时不在您的 PATH 环境变量中。这一直是关于如何让 pygtk 在 Windows 上工作的建议。请不要更改您的用户或系统 PATH 环境变量,一体式安装程序不再需要它。
  • 您的 PATH 环境变量中有多个 GTK+ 运行时版本,第一个(最左边的)与您使用的 pygtk/pygobject/pycairo 版本不兼容。这就是为什么将 GTK+ 运行时添加到 PATH 环境变量是一个坏主意的原因:很容易混淆版本(有时与 GTK+ 相关的安装程序会在安装时将其 bin 目录添加到包含较旧或不完整运行时的 PATH)。
  • 某些软件包将 libintl.dll 和 iconv.dll 安装到 %WINDIR%\system 或 %WINDIR%\sytem32 的罕见情况

避免上述 dll 地狱的最直接方法是使用 PyGTK All-in-one 安装程序 (http://download.gnome.org/binaries/win32/pygtk/2.22/)。它包含 Python 绑定、GTK+ 运行时甚至 Glade,并且不再需要您更改 PATH 环境变量。

小警告:如果您决定使用一体式安装程序,则必须卸载以前使用过的单独的 pygtk/pygobject/pycairo 软件包(否则您将陷入困境......)

于 2011-01-07T12:07:46.040 回答
0

我也有这个问题。你没有在你的回答中明确提到,所以我会建议显而易见的(嗯......对于已经使用它一段时间的人来说是显而易见的,也许)。你是用下面三行代码导入的吗?为了导入 PyGTK,您必须使用这些。

我假设你的版本和我的一样是 2.24。如果没有,请将其更改为您拥有的版本。

import pygtk
pygtk.require('2.24')
import gtk

这应该足以导入 gtk。

于 2011-12-04T16:29:39.453 回答
0

看了源码,可能需要特定版本的pygtk

编辑源代码以使用您的 pygtk 版本

于 2010-11-14T20:10:24.560 回答
0

问题

正如其他人所指出的,不要将 gtk 放在路径中。我知道,它很诱人,并且适用于 XYZ,但它(至少可以说)会让人感到困惑。在像 Linux 这样的平台上,依赖地狱已经够糟糕了,它试图让你轻松。

为了澄清起见,PyGTK All In One 为您所做的是直接在您的 python 包文件夹中安装(看起来是)一个完整的 gtk+ 运行时,例如在 C:\Python\Lib\site-packages\gtk-2.0\运行

解决方案

注意:%YOURPYTHONPATH% 是一个示例变量,其中包含 Python 安装的路径(例如 C:\Python 或 C:\Python27,或者它实际上是什么)。如果您想使用变量来执行此操作,我建议设置 %PYTHON_DIR% 或 %PYTHON_PATH%,因为更多程序可能会使用它。

要让需要 GTK 的 XYZ 程序运行,请在运行程序时将%YOURPYTHONPATH% \Lib\site-packages\gtk-2.0\runtime\bin 添加到 PATH;它需要链接的 DLL 的正确版本位于该文件夹中。我安装的所有其他 GTK+ 运行时(GTK+/GTK2-Runetime)都给了我错误。

再次; 不要尝试设置用户或系统级别的变量(不要打开下图所示的对话框),因为这可能会在以后给您带来问题,除非您非常确定自己知道自己在做什么。如果您正在阅读本文,那么您很可能并不像您认为的那样了解。相反,在 cmd 提示符下更改路径,或使用批处理/脚本文件为您设置它。

进入 Windows 环境变量对话框

于 2013-03-22T20:38:25.617 回答
-1

安装 pygtk.org 包后,按以下顺序安装其中的每一个:

  • pycairo-1.8.6.win32-py2.6.exe
  • pygobject-2.20.0.win32-py2.6.exe
  • pygtk-2.16.0+glade.win32-py2.6.exe
  • gtk+-bundle_2.16.6-20100912_win32.zip

了解更多信息:

http://freetstar.com/windows7-pygtk-gtk/

我根据我电脑上的链接得到了 secuses。

于 2013-06-06T03:52:34.110 回答