pygtk import gtk错误

时间:2010-11-14 20:08:16

标签: windows pygtk importerror

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

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

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

5 个答案:

答案 0 :(得分:2)

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

  • GTK +运行时不在您的PATH环境变量上。这一直是 关于如何让pygtk在Windows上运行的建议。请不要更改您的用户 或系统PATH环境变量,一体机不再需要它 安装程序。
  • 多个GTK +运行时版本在您的PATH环境变量和第一个上 (最左边)一个与你使用的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包(或者您将进入 一个充满烦恼的世界......)

答案 1 :(得分:0)

阅读源代码,或许需要特定版本的pygtk

编辑源代码以使用pygtk版本

答案 2 :(得分:0)

我也有这个问题。你在答案中没有提到肯定,所以我会建议明显的(好吧......对于那些曾经使用过一段时间的人来说,显而易见)。您是否使用以下三行代码导入?您必须按顺序使用这些来导入PyGTK。

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

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

这应该足以导入gtk。

答案 3 :(得分:0)

问题

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

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

解决方案

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

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

再次; 尝试设置用户或系统级变量(不要打开下图所示的对话框),因为这可能会在以后引起问题,除非您非常确定自己知道自己是什么这样做。如果你正在读这篇文章,你很可能不会像你想象的那样知道。而是在cmd提示符中更改路径,或使用批处理/脚本文件为您设置它。

enter Windows Environment Variables Dialog

答案 4 :(得分:-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/

根据我个人电脑上的链接,我得到了解决方案。