【问题标题】:PyGObject for Python 3.5.1?Python 3.5.1 的 PyGObject?
【发布时间】:2016-04-13 23:21:38
【问题描述】:

我使用的是 Debian Linux,并且我从 Synaptic 安装了包 python3-gi,如果我使用我的 Python 3.4 解释器,这可以正常工作。但是,当我使用 3.5 运行 Gtk+3 程序时,它卡在from gi.repository import Gtk 行,说没有名为 Gtk 的模块。此外,我不认为 pip 在我的计算机上适用于 Python 3.5,尽管我不确定。我只知道pip install PyGObject 不起作用。最后,当我尝试使用 Pycharm 的特定包安装程序(设置/项目解释器)时,Pycharm 告诉我没有安装 Python 打包工具(当我点击它给出的提示时它无法安装它们)。

我有一台 64 位计算机,Python 3.5 安装到 /usr/local/bin/,Python 3.4 安装到 /usr/bin/。

【问题讨论】:

    标签: python-3.x pip pygobject


    【解决方案1】:

    您不能使用 pip,您必须下载 pygobject 并自己从源代码构建它。 https://download.gnome.org/sources/pygobject/

    【讨论】:

    • 正确,但值得注意的是,这种方法只是使用了他们的正常构建系统,所以你不能只将它安装在一个新的系统或其他东西中,你需要所有正常的构建依赖项。
    • @smerlin 您应该将您的评论作为答案发布(我想稍微详细说明一下),因为它是问题的答案
    【解决方案2】:

    这就是我如何在我的 Mac OS Sierra 上启动 Python 3.6 并使用 GStreamer 绑定等运行。

    如果您已经安装了 Gstreamer 及其插件,并且需要将其绑定到您的 Python 解释器以进行开发,请从步骤 1 开始。

    0a- 从他们的网站安装 gstreamer ...通常然后

    0b- brew install gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav

    1- brew install gst-python --with-python3

    但请注意,由于某种原因,“gtk”并未预先捆绑,因此我们进入第 2 步。

    2- brew install gtk+3

    就是这样,就像 ABC...

    一样简单

    附件是一个测试 python 代码,以确保您一切正常[可选]

    import gi, time, sys
    gi.require_version('Gst', '1.0')
    gi.require_version('GstBase', '1.0')
    gi.require_version('Gtk', '3.0')
    from gi.repository import GObject, Gst, GstBase, Gtk, GObject
    
    class Main:
       def __init__(self):
           Gst.init(None)
           self.pipeline = Gst.Pipeline()
           self.audiotestsrc = Gst.ElementFactory.make('audiotestsrc',  'audio')
           self.pipeline.add(self.audiotestsrc)
    
           self.sink = Gst.ElementFactory.make('autoaudiosink', 'sink')
           self.pipeline.add(self.sink)
           self.audiotestsrc.link(self.sink)
           self.pipeline.set_state(Gst.State.PLAYING)
           time.sleep(3)
           self.pipeline.set_state(Gst.State.PAUSED)
           self.pipeline.set_state(Gst.State.READY)
           self.pipeline.set_state(Gst.State.NULL)
           sys.exit(0)
    start =  Main()
    Gtk.main()
    

    希望一切顺利,c ya!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      • 1970-01-01
      • 2016-05-29
      • 2016-02-25
      • 1970-01-01
      • 2016-05-19
      相关资源
      最近更新 更多