如何让Python识别/查找Homebrew安装的gi.repository(PyGObjects)?

3
当我在解释器中输入“from gi.repository import Gtk”时,我会得到以下结果:
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named gi.repository

这是我的酿造清单。
at-spi2-atk freetype    gtk+        libffi      py2cairo
at-spi2-core    gdbm        gtk+3       libpng      pygobject
atk     gdk-pixbuf  harfbuzz    libtiff     pygtk
cairo       gettext     icu4c       pango       readline
d-bus       glib        intltool    pixman      sqlite
fontconfig  gstreamer   jpeg        pkg-config  xz

以下是在Python中执行"print sys.path"的结果:

['', '/Library/Python/2.7/site-packages/setuptools-1.1.5-py2.7.egg', '/Library/Python/2.7/site-packages/py2app-0.7.3-py2.7.egg', '/Library/Python/2.7/site-packages/macholib-1.5.1-py2.7.egg', '/Library/Python/2.7/site-packages/modulegraph-0.10.4-py2.7.egg', '/Library/Python/2.7/site-packages/altgraph-0.10.2-py2.7.egg', '/usr/local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/site-packages/gobject', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/Library/Python/2.7/site-packages', '/usr/local/lib/python2.7/site-packages/gtk-2.0']

我的自制模块的站点包似乎在Python路径中,所以我不知道我缺少什么。我正在使用位于我的System / Library / Frameworks目录中的python 2.7.5(在Mountain Lion上)。我已经尝试过brewing python(2和3)来解决这个问题,但安装会卡在Python运行100% CPU上并永远无法完成。
非常感谢您可能提供的任何建议。
1个回答

1

您需要设置环境变量GI_TYPELIB_PATH为您的girepository-1.0目录的路径,该目录应包含您想要使用的每个库的.typelib文件。我想

export GI_TYPELIB_PATH=/usr/local/lib/girepository-1.0

或者类似的东西在Bash中也可以使用。
此外,您还需要确保共享库可以被内省运行时所找到,如果还没有这样做的话。这可以通过在Linux上适当设置LD_LIBRARY_PATH环境变量来实现,例如:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

苹果的文档建议在Mac上也应该可以使用LD_LIBRARY_PATH,但我还没有尝试过。


感谢您的回答。不幸的是,在OSX中似乎没有girepository-1.0目录。我已经转向Qt,但我仍然感激您的帮助。 - Will03
"brew install pygobject3" 将创建 "/usr/local/lib/girepository-1.0"。 - Anuj
@Tristan Brindle,我有"/usr/local/lib/girepository-1.0"目录,但两个导出命令对我没有帮助。请看看我的问题:https://stackoverflow.com/questions/54515203/cannot-import-gi-module-python-3-6-on-mac - Cindy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接