Как установить gi-модуль для anaconda python3?

python3 - это моя локальная версия python Anaconda, а 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
$

Как мне установить gi для python Anaconda? Или, может быть, я могу каким-то образом импортировать модули sysem-wide?

Мои os:

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

Ответ 1

Вот как вы это делаете: (пример для 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, путь должен быть немного другим. Предполагая, что виртуальный env называется 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
>>>

Ответ 2

Если вы хотите выполнить правильную установку (без мягких ссылок) в среде Linux Anaconda. Имейте в виду, что ошибки могут отличаться, если вы ранее не устанавливали gcc (я предполагал, что он был установлен по умолчанию, когда я писал, но не все так делают). Установите его, если вы не очень хорошо знаете, что делаете, чтобы избежать недоразумений

  1. Создайте или откройте вашу среду conda.

  2. Попытайтесь установить pygobject (не волнуйтесь, он, скорее всего, выдаст ошибку):

    pip install pygobject
    

    В Linux это будет вызывать обычный процесс установки, сопровождаемый ошибкой:

    (...) Пожалуйста, попробуйте выполнить в вашей системе следующее: sudo apt install libgirepository1.0-dev

    В зависимости от вашей операционной системы или установленных зависимостей, имя команды или имя пакета могут отличаться. Просто следуйте инструкциям и позвольте системе установить ваши пакеты. Этот шаг ничего не меняет, он просто дает вам точную информацию о пакете, который вам нужен в вашей системе. Если вы запустите это в Windows, вам будет предложено установить определенную версию Visual Studio. Если вы работаете в Windows, загрузите необходимую Visual Studio с веб-сайта MS, установите ее, перезагрузите компьютер и перейдите к шагу 5 (в моем случае мне никогда не требовался шаг 4 в Windows, однако я не являюсь экспертом по MS.

  3. Закройте вашу среду conda

    conda deactivate
    
  4. Затем вам нужно установить pygobject из хранилища conda-forge в вашей среде conda. Вы можете добавить репозиторий в ваш любимый менеджер пакетов conda или просто запустить следующую команду от имени пользователя root (важно быть пользователем root). Я сделал это вне проекта, но вы можете сделать это внутри:

    conda install -c conda-forge pygobject
    

    В моем случае Конда не было в пути. Я был установлен в:

    /opt/anaconda3/bin/
    

    Вы можете запустить следующую команду от вашего обычного пользователя, чтобы узнать, где находится conda:

    which conda
    
  5. Откройте среду Конда

    source activate <your env name>
    

    или соответствующий анаконда активировать синтаксис (я никогда не использую его, поэтому точно не помню)

  6. Повторите первый шаг, и теперь установка не удастся:

    pip install pygobject
    

    ИЛИ, если вы хотите установить gi, вы можете запустить:

    pip install pgi
    

    правильный пакет "pgi", а не "gi"

Поскольку gi является зависимостью от pygobject, все будет правильно установлено. Вы можете проверить это, запустив

python
>>> import gi

Вы можете найти следующее полезное для Windows, хотя вам, возможно, потребуется немного разобраться с этим: GStreammer python bindings в Windows

Ответ 3

Если вы используете conda virtualenv для python-3, вы можете использовать

$ conda install -c conda-forge pygobject

в вашем virtualenv

Вы можете узнать больше об этом: https://anaconda.org/conda-forge/pygobject

Ответ 4

для меня

conda install -c pkgw/label/superseded gtk3

работал