feschukov / rhythmbox-plugin-yandex-music

Плагин для работы с музыкальным сервисом Яндекс.Музыка в Rhythmbox
GNU General Public License v3.0
187 stars 20 forks source link

Не включается плагин #5

Closed mannekeenpis closed 2 years ago

mannekeenpis commented 2 years ago

Не удаётся активировать плагин в настройках Rhythmbox:

screen Расположение файлов:

Снимок экрана от 2022-04-09 15-51-30 Библиотеку yandex-music-api установил через pip, пробовал через pip3

feschukov commented 2 years ago

Попробуйте запустить Rhythmbox из терминала и активировать/найти в списке плагин. И пришлите, пожалуйста, что программа выдаст в терминале.

mannekeenpis commented 2 years ago

Снимок экрана от 2022-04-09 16-37-00

feschukov commented 2 years ago

В данном случае система у вас не видит библиотеку yandex-music-api. Что у вас за дистрибутив?

mannekeenpis commented 2 years ago

В данном случае система у вас не видит библиотеку yandex-music-api. Что у вас за дистрибутив?

Ubuntu 20.04.4 LTS

feschukov commented 2 years ago

Может попробовать установить библиотеку непосредственно из git через команду python?

git clone https://github.com/MarshalX/yandex-music-api
cd yandex-music-api
python setup.py install
mannekeenpis commented 2 years ago

Может попробовать установить библиотеку непосредственно из git через команду python?

git clone https://github.com/MarshalX/yandex-music-api
cd yandex-music-api
python setup.py install

Попробовал, получил ту же ошибку что на последнем скриншоте.

feschukov commented 2 years ago

Попробуйте установить из папки, куда скачалась библиотека, с помощью команды (уточним версию python)

python3.8 setup.py install

Или лучше вот так установить

python3.8 -m pip install yandex-music
mannekeenpis commented 2 years ago

Попробуйте установить из папки, куда скачалась библиотека, с помощью команды (уточним версию python)

python38 setup.py install

Или лучше вот так установить

python38 -m pip install yandex-music

ERROR: Could not install packages due to an EnvironmentError: [Errno 30] Read-only file system: '/snap/python38/22/usr/local'

Снимок экрана от 2022-04-09 19-13-55

feschukov commented 2 years ago

Можете написать вывод следующих команд

ls /usr/bin/python*
ls /snap/python*

В системе много версий питона, Rhythmbox обращается к классической версии python 3.8, а команда python38 ведёт к snap версии пакета. Понять пытаюсь как тогда установить библиотеку в нужную версию питона.

mannekeenpis commented 2 years ago

Можете написать вывод следующих команд

ls /usr/bin/python*
ls /snap/python*

В системе много версий питона, Rhythmbox обращается к классической версии python 3.8, а команда python38 ведёт к snap версии пакета. Понять пытаюсь как тогда установить библиотеку в нужную версию питона.

Снимок экрана от 2022-04-09 19-43-43

feschukov commented 2 years ago

Давайте тогда попробуем вот так установить

/usr/bin/python3.8 -m pip install yandex-music
mannekeenpis commented 2 years ago

Давайте тогда попробуем вот так установить

/usr/bin/python3.8 -m pip install yandex-music

File "/usr/lib/python3/dist-packages/urllib3/util/queue.py", line 10, in class LifoQueue(queue.Queue): AttributeError: module 'queue' has no attribute 'Queue'

(rhythmbox:9413): libpeas-WARNING **: 20:00:18.392: Error loading plugin 'yandex-music'

(rhythmbox:9413): Gtk-WARNING **: 20:00:21.856: Can't set a parent on widget which has a parent

Снимок экрана от 2022-04-09 20-00-53

feschukov commented 2 years ago

Попробуйте библиотеку requests ещё установить/обновить

python3.8 -m pip install requests --upgrade

Хотя это вряд ли поможет. Модуль Queue стандартный для Python и непонятно пока почему он у вас ошибку вызывает.

feschukov commented 2 years ago

Попробовал на виртуальной машине и чистой Ubuntu 20.04 LTS запустить плагин в Rhythmbox. Для этого на чистой Ubuntu установил pip (почему-то пакет python3-pip ни в какую не захотел устанавливать)

$ wget https://bootstrap.pypa.io/get-pip.py
$ python3 get-pip.py

модуль yandex-music

$ python3 -m pip install yandex-music

и данный плагин

$ wget https://github.com/dobroweb/rhythmbox-plugin-yandex-music/archive/refs/tags/0.2-alpha.tar.gz
$ tar -zxvf 0.2-alpha.tar.gz
$ mkdir -p ~/.local/share/rhythmbox/plugins/
$ mv rhythmbox-plugin-yandex-music* ~/.local/share/rhythmbox/plugins/yandex-music

И всё заработало корректно. Не понимаю тогда что у вас происходит с Python и почему он ругается на стандартный модуль свой.

mannekeenpis commented 2 years ago

Очень странный случай у меня. Попробовал снова всё как вы описали выше, результат тот же:

    from .util.queue import LifoQueue
  File "/usr/lib/python3/dist-packages/urllib3/util/queue.py", line 10, in <module>
    class LifoQueue(queue.Queue):
AttributeError: module 'queue' has no attribute 'Queue'

А вот что происходит в терминале при установке:

При вводе python3 -m pip install yandex-music

python3 -m pip install yandex-music
Requirement already satisfied: yandex-music in ./anaconda3/lib/python3.9/site-packages (2.0.1)
Requirement already satisfied: requests[socks] in ./anaconda3/lib/python3.9/site-packages (from yandex-music) (2.26.0)
Requirement already satisfied: aiofiles in ./anaconda3/lib/python3.9/site-packages (from yandex-music) (0.8.0)
Requirement already satisfied: aiohttp in ./anaconda3/lib/python3.9/site-packages (from yandex-music) (3.8.1)
Requirement already satisfied: yarl<2.0,>=1.0 in ./anaconda3/lib/python3.9/site-packages (from aiohttp->yandex-music) (1.7.2)
Requirement already satisfied: attrs>=17.3.0 in ./anaconda3/lib/python3.9/site-packages (from aiohttp->yandex-music) (21.2.0)
Requirement already satisfied: frozenlist>=1.1.1 in ./anaconda3/lib/python3.9/site-packages (from aiohttp->yandex-music) (1.3.0)
Requirement already satisfied: charset-normalizer<3.0,>=2.0 in ./anaconda3/lib/python3.9/site-packages (from aiohttp->yandex-music) (2.0.4)
Requirement already satisfied: multidict<7.0,>=4.5 in ./anaconda3/lib/python3.9/site-packages (from aiohttp->yandex-music) (6.0.2)
Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in ./anaconda3/lib/python3.9/site-packages (from aiohttp->yandex-music) (4.0.2)
Requirement already satisfied: aiosignal>=1.1.2 in ./anaconda3/lib/python3.9/site-packages (from aiohttp->yandex-music) (1.2.0)
Requirement already satisfied: idna<4,>=2.5 in ./anaconda3/lib/python3.9/site-packages (from requests[socks]->yandex-music) (3.2)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./anaconda3/lib/python3.9/site-packages (from requests[socks]->yandex-music) (1.26.7)
Requirement already satisfied: certifi>=2017.4.17 in ./anaconda3/lib/python3.9/site-packages (from requests[socks]->yandex-music) (2021.10.8)
Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in ./anaconda3/lib/python3.9/site-packages (from requests[socks]->yandex-music) (1.7.1)

При вводе wget https://github.com/dobroweb/rhythmbox-plugin-yandex-music/archive/refs/tags/0.2-alpha.tar.gz

wget https://github.com/dobroweb/rhythmbox-plugin-yandex-music/archive/refs/tags/0.2-alpha.tar.gz
--2022-04-11 16:54:05--  https://github.com/dobroweb/rhythmbox-plugin-yandex-music/archive/refs/tags/0.2-alpha.tar.gz
Распознаётся github.com (github.com)… 140.82.121.3
Подключение к github.com (github.com)|140.82.121.3|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 302 Found
Адрес: https://codeload.github.com/dobroweb/rhythmbox-plugin-yandex-music/tar.gz/refs/tags/0.2-alpha [переход]
--2022-04-11 16:54:05--  https://codeload.github.com/dobroweb/rhythmbox-plugin-yandex-music/tar.gz/refs/tags/0.2-alpha
Распознаётся codeload.github.com (codeload.github.com)… 140.82.121.9
Подключение к codeload.github.com (codeload.github.com)|140.82.121.9|:443... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: нет данных [application/x-gzip]
Сохранение в: «0.2-alpha.tar.gz»

0.2-alpha.tar.gz        [ <=>                ]  17,21K  --.-KB/s    за 0,06s   

2022-04-11 16:54:06 (283 KB/s) - «0.2-alpha.tar.gz» сохранён [17619]

При вводе tar -zxvf 0.2-alpha.tar.gz

tar -zxvf 0.2-alpha.tar.gz
rhythmbox-plugin-yandex-music-0.2-alpha/
rhythmbox-plugin-yandex-music-0.2-alpha/LICENSE
rhythmbox-plugin-yandex-music-0.2-alpha/README.md
rhythmbox-plugin-yandex-music-0.2-alpha/gschemas.compiled
rhythmbox-plugin-yandex-music-0.2-alpha/org.gnome.rhythmbox.plugins.yandex-music.gschema.xml
rhythmbox-plugin-yandex-music-0.2-alpha/po/
rhythmbox-plugin-yandex-music-0.2-alpha/po/ru.po
rhythmbox-plugin-yandex-music-0.2-alpha/yandex-music.plugin
rhythmbox-plugin-yandex-music-0.2-alpha/yandex-music.py
rhythmbox-plugin-yandex-music-0.2-alpha/yandex-music.svg
(base) lenar@lenar-MacBookAir:~$ mkdir -p ~/.local/share/rhythmbox/plugins/
(base) lenar@lenar-MacBookAir:~$ mv rhythmbox-plugin-yandex-music* ~/.local/share/rhythmbox/plugins/yandex-music

При запуске rhythmbox из терминала и при закрытии после активации плагина

rhythmbox
do_connect: could not connect to socket
connect: Нет такого файла или каталога

(rhythmbox:34634): Gtk-WARNING **: 16:55:16.855: actionhelper: action app.play-repeat can't be activated due to parameter type mismatch (parameter type NULL, target type b)

(rhythmbox:34634): Gtk-WARNING **: 16:55:16.856: actionhelper: action app.play-shuffle can't be activated due to parameter type mismatch (parameter type NULL, target type b)

(rhythmbox:34634): Rhythmbox-WARNING **: 16:55:17.131: Could not open device /dev/radio0

** (rhythmbox:34634): WARNING **: 16:55:24.811: Error importing plugin 'yandex-music':
Traceback (most recent call last):
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 848, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/lenar/.local/share/rhythmbox/plugins/yandex-music/yandex-music.py", line 2, in <module>
    from yandex_music import Client
  File "/home/lenar/.local/lib/python3.8/site-packages/yandex_music/__init__.py", line 137, in <module>
    from .client import Client
  File "/home/lenar/.local/lib/python3.8/site-packages/yandex_music/client.py", line 47, in <module>
    from yandex_music.utils.request import Request
  File "/home/lenar/.local/lib/python3.8/site-packages/yandex_music/utils/request.py", line 12, in <module>
    import requests
  File "/home/lenar/.local/lib/python3.8/site-packages/requests/__init__.py", line 43, in <module>
    import urllib3
  File "/usr/lib/python3/dist-packages/urllib3/__init__.py", line 7, in <module>
    from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, connection_from_url
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 53, in <module>
    from .util.queue import LifoQueue
  File "/usr/lib/python3/dist-packages/urllib3/util/queue.py", line 10, in <module>
    class LifoQueue(queue.Queue):
AttributeError: module 'queue' has no attribute 'Queue'

(rhythmbox:34634): libpeas-WARNING **: 16:55:24.811: Error loading plugin 'yandex-music'

(rhythmbox:34634): Gtk-WARNING **: 16:55:36.329: Can't set a parent on widget which has a parent
mannekeenpis commented 2 years ago

После переустановки Ubuntu 20.04, плагин установился, всё замечательно работает! Спасибо вам за возможность слушать музыку через Rhythmbox.