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

发布于 2024-08-01 17:41:49 字数 804 浏览 14 评论 0原文

我有一个依赖于 PyGTK、PyGobject 和 PyCairo 的应用程序,我为在 Linux 上运行而构建了该应用程序。 我想将其移植到 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已关闭:不会修复)。

有没有什么方法可以在 Windows 上使用 Python 2.6 来安装 PyGTK/PyGObject,而无需从源代码重新编译其中之一?

I have an application which depends on PyGTK, PyGobject, and PyCairo that I built to work on Linux. I want to port it over to windows, but when I execute import gobject I get this:

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.

This appears to be caused by the switch from building using MinGW to Microsoft Visual Studio, as documented Python Bug 3308 (closed: wontfix).

Is there any way to install PyGTK/PyGObject in a way that will work with Python 2.6 on Windows, without having to recompile one or the other from source?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

半夏半凉 2024-08-08 17:41:49

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

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

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

The PyGTK all-in-one installer has been updated recently:

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

This will install PyGTK, PyGObject, PyCairo, PyGtkSourceView2, PyGooCanvas, PyRsvg, the gtk+-bundle and Glade. It is absolutely everything necessary to be able to successfully import gobject, import gtk, etc, without DLL problems.

携余温的黄昏 2024-08-08 17:41:49

对于 64 位 Windows 用户,请参阅

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

上述步骤将在 64 位上出现 Invalid DLL 错误。

for 64 bit Windows users see

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

Above steps will give Invalid DLL error on 64 bit.

阿楠 2024-08-08 17:41:49

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

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

u should have pygtk,pycairo,pygboject and the gtk+ runtime...

see this for an all in one installer
http://aruiz.typepad.com/siliconisland/2006/12/allinone_win32_.html

眼眸印温柔 2024-08-08 17:41:49

如果任何人计划通过嵌入式解释器运行 PyGTK 并且 C/C++ 代码已经在使用 GTK,那么在安装 PyGTK 捆绑包时要小心。 PyGTK 捆绑包不会将其 GTK 运行时添加到 PATH。

在这种情况下,C 代码可能会从 PATH 获取 GTK(因为可能您已经安装了 GTK 捆绑包),而 Python 将使用单独的 GTK 运行时库集。

因此,在我的例子中,C GUI 或 Python GUI 曾经可以正常运行,但在一起运行时常常会发生冲突。

由于我使用 Psychopy 作为我的基础 Python 集合,为了解决这个问题,我刚刚在 Psychopy 之上安装了 PyGTK、Pycairo、Pygobject。

除了仅使用一组 GTK 运行时之外,在初始化 python 解释器之后,我还必须通过 PyGTK 在我的 C 代码中初始化 GTK(而不是在我的 C 代码中通过 gtk_init (&argc, &argv))。

Be careful about installing PyGTK bundle pack if any one planning to run PyGTK through embedded interpreter and the C/C++ code is already using GTK. PyGTK bundle pack does not add its GTK runtime to PATH.

In such case possibly the C code will take GTK from PATH (as probably you have already installed GTK bundle pack) and Python will use separate set of GTK runtime libraries.

Therefore in my case either C GUI or Python GUI used to run properly and used to conflict while running together.

As I use Psychopy as my base python collection, to solve this problem I have just installed PyGTK PyGTK, Pycairo, Pygobject on top of Psychopy.

Apart from using only one set of GTK runtime I had to initialize GTK in my C code through PyGTK (not by gtk_init (&argc, &argv) in my C code) after initializing python interpreter.

枉心 2024-08-08 17:41:49

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

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

我怀疑你的如果 PyGTK 库找不到 DLL 所在的 GTK+ 运行时目录。 您应该将环境变量 GTK_BASEPATH 设置为 GTK+ 运行时的目录(通常为 C:\GTK)。

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

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

I have it working fine, and it didn't give me much trouble, so we know it can be done...

Keep in mind you will probably need all of the following installed on your Windows machine:

I suspect in your case that the PyGTK libraries are not finding your GTK+ Runtime directory where the DLLs are. You should have the environment variable GTK_BASEPATH set to the directory of your GTK+ Runtime (usually C:\GTK).

Please also see the PyGTK-on-Windows FAQ

Now, if you're trying to compile the PyGTK'ed Python with Py2EXE, that's a bit more complicated, but it can be done as well...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文