如何在 Mac OS X 上安装 pygtk 3?

Hug*_*ins 7 python pygtk pip macos-sierra

我试过的:

brew install pygobject3 --with-python@2 gtk+3
brew install pygtk3
brew install pygobject3
pip install pygobject

python -c 'import gi; gi.require_version("Gtk", "3.0")'
Run Code Online (Sandbox Code Playgroud)

结果:

ValueError: Namespace Gtk not available for version 3.0
Run Code Online (Sandbox Code Playgroud)

请注意,我正在使用 python 3.6 运行 conda;和 Mac OS X High-Sierra

在发布之前,我通读了以下问题/答案:

(请注意,如果我将 更改requires2.0,则它可以正常加载,但我收到警告:

"RuntimeWarning: 您已经导入了 Gtk 2.0 模块。因为 Gtk 2.0 不是为使用自省而设计的,某些接口和 API 将失败。因此,pygobject 开发团队不支持这一点,我们鼓励您将您的应用程序移植到Gtk 3 或更高版本。PyGTK 是推荐用于 Gtk 2.0" 的 Python 模块

Spc*_*ond 4

问题是 pygobject3 的开发人员编写的安装说明没有考虑 pip/conda。如果您遵循官方文档:

  • 必须使用 homebrew python 安装(你去的时候安装的那个brew install python
  • brew install gtk+3与非自制 Pip/Conda python 安装不兼容。您必须手动构建 GTK3 包才能使用 pygobject3 的 pip 版本。

但是,如果你想使用 conda,感谢这个 conda 贡献者,你可以使用一个预构建的 conda gtk3 包,你只需从他的频道获取它:

使用 conda 创建新环境:

conda create --name my_env
Run Code Online (Sandbox Code Playgroud)

从 conda 安装 pygobject3

conda install pygobject
Run Code Online (Sandbox Code Playgroud)

从 pkgw-forge 频道安装 gtk3

conda install -c pkgw-forge gtk3
Run Code Online (Sandbox Code Playgroud)

要验证,请从 conda env 中打开 python 并运行

import gi
gi.require_version("Gtk", "3.0")
Run Code Online (Sandbox Code Playgroud)

应该没有错误