如何为anaconda python3安装gi模块?

Kos*_*sak 16 python python-3.x anaconda conda

python3是我当地的Anaconda版python,同时python3.4也是系统之一.我可以导入gi模块python3.4(可能是因为我安装了它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
$
Run Code Online (Sandbox Code Playgroud)

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

我的口碑:

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
Run Code Online (Sandbox Code Playgroud)

Kos*_*sak 13

这是你如何做到的:( Linux Mint和python3的例子)

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

sudo apt-get install python3-gi
Run Code Online (Sandbox Code Playgroud)

然后运行你的发行版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'>
Run Code Online (Sandbox Code Playgroud)

所以在我的情况下,模块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/
Run Code Online (Sandbox Code Playgroud)

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

ln -s /usr/lib/python3/dist-packages/gi /home/kossak/anaconda3/envs/TEST/lib/python3.5/site-packages/
Run Code Online (Sandbox Code Playgroud)

它有效:

$ 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
>>>
Run Code Online (Sandbox Code Playgroud)

  • 你好。我发布了一个不涉及软链接的新解决方案。你能检查一下它对你有用吗? (2认同)
  • 这个解决方案很糟糕,当你有 virtualenv 时为什么要使用软链接和系统级包? (2认同)

Yuv*_*wal 10

如果您将conda virtualenv用于python-3,则可以使用

$ conda install -c conda-forge pygobject
Run Code Online (Sandbox Code Playgroud)

在您的virtualenv中

您可以在以下网址了解更多信息:https : //anaconda.org/conda-forge/pygobject

  • 在 Ubuntu 18.04 上。pydobject ValueError:命名空间 GdkX11 不可用 (2认同)
  • 这是原始问题的正确答案:) (2认同)

DGo*_*iko 7

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

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

  2. 尝试安装pygobject(不用担心,它很可能会引发错误):

    pip install pygobject
    
    Run Code Online (Sandbox Code Playgroud)

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

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

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

  3. 关闭您的conda环境

    conda deactivate
    
    Run Code Online (Sandbox Code Playgroud)
  4. 接下来,您需要在conda环境中从conda-forge存储库安装pygobject。您可以将存储库添加到您最喜欢的conda程序包管理器中,或仅以root用户身份运行以下命令(重要的是root用户)。我是在项目外部完成的,但您可以在内部进行:

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

    就我而言,康达不在路上。我安装在:

    /opt/anaconda3/bin/
    
    Run Code Online (Sandbox Code Playgroud)

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

    which conda
    
    Run Code Online (Sandbox Code Playgroud)
  5. 打开conda环境

    source activate <your env name>
    
    Run Code Online (Sandbox Code Playgroud)

    或相应的anaconda激活语法(我从没使用过,所以我记不清楚了)

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

    pip install pygobject
    
    Run Code Online (Sandbox Code Playgroud)

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

    pip install pgi
    
    Run Code Online (Sandbox Code Playgroud)

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

由于gi是pygobject的依赖项,因此将正确安装所有内容。您可以通过运行来检查它

python
>>> import gi
Run Code Online (Sandbox Code Playgroud)

您可能会发现以下对Windows有用的信息,尽管您可能需要做一些工作: Windows上的GStreammer python绑定