【问题标题】:How to install gi module for anaconda python3?如何为 anaconda python3 安装 gi 模块?
【发布时间】:2016-05-30 12:45:02
【问题描述】:

python3 是我本地的蟒蛇版本的python,而python3.4 是系统版本。我可以用python3.4 导入gi 模块(可能是因为我用sudo apt-get install python3-gi 安装它)但是python3 没有看到它:

$ python3 -c 'import gi'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named 'gi'
$ python3.4 -c 'import gi'                                       

$ python3 --version
Python 3.5.1 :: Anaconda 4.0.0 (64-bit)
$ python3.4 --version
Python 3.4.3
$ which python3
/home/kossak/anaconda3/bin/python3
$ which python3.4
/usr/bin/python3.4
$

我应该如何为 Anaconda python 安装gi?或者也许我可以以某种方式导入系统范围的模块?

我的操作系统:

System:    Kernel: 3.19.0-32-generic x86_64 (64 bit gcc: 4.8.2) Desktop: Cinnamon 2.8.8 (Gtk 2.24.23) dm: mdm
           Distro: Linux Mint 17.3 Rosa

【问题讨论】:

  • 在 CentOS 8 上,gi 模块位于python3-gobject-base RPM 中。 (以防其他人像我一样搜索并找到这个问题。)
  • 在 Ubuntu 21.10 上,gipygobject python 包中,一旦执行了sudo aptitude install libgirepository1.0-dev,就可以pip-ed。

标签: python python-3.x anaconda conda


【解决方案1】:

如果你在 python-3 中使用 conda virtualenv,你可以使用

$ conda install -c conda-forge pygobject

在你的虚拟环境中

您可以在以下位置阅读更多相关信息: https://anaconda.org/conda-forge/pygobject

【讨论】:

  • 在 Ubuntu 18.04 上。 pydobject ValueError: 命名空间 GdkX11 不可用
  • 这是原问题的正确答案:)
【解决方案2】:

这就是你的做法:(Linux Mint 和 python3 的示例)

首先使用您的发行版包管理器安装gi 模块。对于 Linux Mint,它将是:

sudo apt-get install python3-gi

然后运行你的发行版 python 来检查模块的位置:

$ /usr/bin/python3
Python 3.5.2 (default, Sep 10 2016, 08:21:44)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
>>> print(gi)
<module 'gi' from '/usr/lib/python3/dist-packages/gi/__init__.py'>

所以在我的例子中,模块gi 安装到/usr/lib/python3/dist-packages/gi。假设您的 anaconda 安装在 /home/kossak/anaconda3 中,请在适当的文件夹中创建指向 gi 模块的链接:

ln -s /usr/lib/python3/dist-packages/gi /home/kossak/anaconda3/lib/python3.5/site-packages/

如果您有 conda 虚拟环境并希望 gi 模块在那里可用,则路径应该有点不同。假设虚拟环境被称为 TEST:

ln -s /usr/lib/python3/dist-packages/gi /home/kossak/anaconda3/envs/TEST/lib/python3.5/site-packages/

它的工作原理:

$ python3
Python 3.5.2 |Anaconda custom (64-bit)| (default, Jul  2 2016, 17:53:06)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
>>>

【讨论】:

  • 你好。我发布了一个不涉及软链接的新解决方案。你能检查一下它是否对你有用吗?
  • 这个解决方案很糟糕,为什么在你有 virtualenv 的时候使用软链接和系统级包?
【解决方案3】:

如果您想在 Linux anaconda 环境中执行正确的安装(无需软链接)。请记住,如果您之前没有安装 gcc,错误可能会有所不同(我假设在我发布时默认安装了它,但不是每个人都这样做)。 如果您不太了解自己在做什么,请安装它以避免误解

  1. 创建或打开您的 conda 环境。

  2. 尝试安装pygobject(别担心,它很可能会抛出错误):

    pip install pygobject
    

    在linux中,它会提示通常的安装进度,然后出现错误:

    (...) 请尝试在您的系统中执行以下操作: sudo apt install libgirepository1.0-dev

    根据您的操作系统或安装的依赖项,命令名称或包名称可能会有所不同。只需按照说明并允许系统安装您的数据包。此步骤不会更改任何内容,只是为您提供系统上所需软件包的准确信息。 如果您在 Windows 上运行它,它会要求您安装特定版本的 Visual Studio。如果您在 Windows 中,请从 MS 网站下载所需的 Visual Studio,安装它,重新启动计算机并转到第 5 步(在我的情况下,我在 Windows 中不需要第 4 步,但是,我不是 MS 专家。强>

  3. 关闭你的 conda 环境

    conda deactivate
    
  4. 接下来,您需要在您的 conda 环境中安装来自 conda-forge 存储库的 pygobject。您可以将 repo 添加到您最喜欢的 conda 包管理器中,或者只需以 root 身份运行以下命令(作为 root 很重要)。我是在项目之外做的,但你可以在里面做:

    conda install -c conda-forge pygobject
    

    在我的情况下,conda 不在路径中。我已经安装在:

    /opt/anaconda3/bin/
    

    您可以从普通用户运行以下命令来找出 conda 在哪里:

    which conda
    
  5. 打开conda环境

    source activate <your env name>
    

    或者对应的anaconda activate 语法(我从没用过所以记不太清了)

  6. 重复第一步,现在安装不会失败:

    pip install pygobject
    

    或者,如果您特别想安装 gi,您可以运行:

    pip install pgi
    

    正确的包是“pgi”而不是“gi”

由于 gi 是 pygobject 的依赖项,所以一切都会正确安装。你可以通过运行来检查它

python
>>> import gi

您可能会发现以下对 Windows 很有用,但您可能需要稍作调整: GStreammer python bindings on Windows

【讨论】:

    【解决方案4】:

    对我来说

    conda install -c pkgw/label/superseded gtk3
    

    工作

    【讨论】:

    • pkgw 频道似乎没有最新的 gtk3 软件包
    猜你喜欢
    • 2014-12-27
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多