写了个深度音乐播放器的网易云音乐插件,可在Linux下播放用户创建、收藏的歌单,以及私人FM。
功能完善中。
https://github.com/wu-nerd/dmusic-plugin-NeteaseCloudMusic
网易云音乐插件(深度音乐播放器)
基于sumary的dmusic-plugin-baidumusic修改而成
使用了NetEaseMusicBox中的网易云音乐API
特性
- 支持网易账号及手机号登录,支持新浪微博账号及二维码登录
- 播放创建的歌单、收藏的歌单
- 支持搜索、添加、删除歌曲
- 支持搜索、添加、删除歌单
- 播放私人FM,支持红心、取消红心、删除歌曲
- 支持每日歌曲推荐
- 支持从网易获取歌词及封面
- 在自行添加歌曲id加密代码的情况下可以实现320K,详见
安装方法
- 安装深度音乐播放器
sudo apt-add-repository ppa:noobslab/deepin-sc
sudo apt-get update
sudo apt-get install deepin-music-player
这个源有段时间没有更新,因此Ubuntu 15.04可能无法安装。需要修改/etc/apt/sources.list.d
文件夹下noobslab-ubuntu-deepin-sc-vivid.list
文件,将其中的的vivid
修改成utopic
,然后
sudo apt-get update
sudo apt-get install deepin-music-player
安装完成后恢复原样
- 安装Requests库及pycrypto库
sudo apt-get install python-pip
sudo pip install requests
sudo pip install pycrypto
对于默认使用Python 3的发行版比如Arch,请安装python2版本的库:
sudo pacman -Ss python2-pip
sudo pip2 install requests
sudo pip2 install pycrypto
- 安装网易云音乐插件
git clone https://github.com/wu-nerd/dmusic-plugin-NeteaseCloudMusic.git
cd dmusic-plugin-NeteaseCloudMusic
python2 install.py
使用
运行深度音乐, 选项设置->附加组件 中启用网易云音乐即可
本文链接地址: 网易云音乐插件 for 深度音乐播放器
大神,容我在此表达感激之情!太好用了!
估计是受限于深度音乐的API,没法加红心,如果能边听边加红心就更好了,还是感谢!
下一个添加的功能就是在私人FM中红心/删除歌曲
可以在GitHub上watch/star以在更新时后及时收到提醒
已经支持在私人FM中红心/取消红心/删除
怎么收索添加音乐?不会用。。。
不好意思
目前还无法搜索,只能播放已创建/收藏的歌单以及私人FM
搜索功能即将添加
可以在GitHub上watch/star以在更新时后及时收到提醒
已支持搜索歌曲
您好 插件已经启动搞了,我怎么登录不了网易账号?
首先请认账号密码正确
如果密码无误还是无法登陆,在neteasecloudmusic/netease_api.py第90行下方添加print connection,用空格与其他行对齐,重新python install.py,在终端运行deepin-music-player ,将输出内容帖出来。
多谢这么快恢复 可能是因为我密码错误导致 多谢!
另外 我也是做开发的 想问一下 做一个播放器插件需要什么技术?
我主要是linux kerenl 和 应用开发的
看你做什么插件了
深度音乐播放器使用的语言为Python,界面为基于GTK的DTK,所以写插件是抓包分析网易云音乐的API,用Python模拟API,获取关键内容,如音乐url,传递给播放器播放,并用dtk实现简单的操作功能如右键菜单双击播放等。
至于界面效果,以百度音乐为例,左侧直接用的网页http://musicmini.baidu.com/。网易没有类似的简版页面,所以目前只是用DTK先把简单搜索功能实现。
要实现类似的功能有三种方式:
1, 写一个简版网页
2, 直接用网易的主页
3, 用GTK写
第1项应该实现起来会比较简单,但HTML/JS我不会
第2项播放器大小限制,会显示不全
第3项实现起来还不如重新写一个。
我的打算是目前的版本功能是全了,没什么问题不会再加功能了。目前网易好像有加密API的打算,当确定API不会加密或有可用的解密算法,在有空的情况下,我会重新写一个,类似你给的那个链接,直接嵌入网易主页,插入JS关闭自带播放器,外部播放音乐并显示歌词。
这当中涉及到很多我不会的内容,可能需要一定时间。当然如果有人会HTML/JS来实现第一项,那问题就简单太多了。
非常详细 谢谢
html gtk js python我都接触过点 但一直没在工作中怎么用,惭愧 呵呵
另外,能否做到想百度或者豆瓣等插件一样 就是好像直接是网易云网页版界面布局一样
也就是http://git.oschina.net/greedisland1017/NetEaseMusic里面类似的效果
arch下使用插件,无法安装,py脚本有错误,不知道该怎么解决。
能否启用插件?
在终端运行 deepin-music-player
帖出错误提示
➜ dmusic-plugin-NeteaseCloudMusic git:(master) python install.py
File “install.py”, line 26
except Exception ,e:
^
SyntaxError: invalid syntax
就是这个情况 根据使用百度音乐插件的办法,即使安装上了,还是无法启用。
我的还是无法用啊,也是这个错误,系统arch
没有语法错误啊
分别用python2/3运行试试
install.py的作用是将neteasecloudmusic目录复制到~/.local/share/deepin-music-player/plugins下,如果还是不行可以手动复制
谢谢,我用python2安装上了,但是始终无法在插件里启用,点五角星就是不变黄,其他的插件没问题
在终端运行deepin-music-player打开播放器
再启用插件,看看终端提示什么错误
谢谢!
Traceback (most recent call last):
File “/usr/share/deepin-music/src/plugins.py”, line 119, in enable_plugin
plugin = self.load_plugin(plugin_name)
File “/usr/share/deepin-music/src/plugins.py”, line 81, in load_plugin
plugin = imp.load_source(plugin_name, os.path.join(path,’__init__.py’))
File “/home/insua/.local/share/deepin-music-player/plugins/neteasecloudmusic/__init__.py”, line 4, in
from netease_music_browser import MusicBrowser
File “/home/insua/.local/share/deepin-music-player/plugins/neteasecloudmusic/netease_music_browser.py”, line 11, in
from netease_music_player import neteasecloud_music_player, player_interface
File “/home/insua/.local/share/deepin-music-player/plugins/neteasecloudmusic/netease_music_player.py”, line 17, in
from netease_api import NetEase
File “/home/insua/.local/share/deepin-music-player/plugins/neteasecloudmusic/netease_api.py”, line 34, in
import requests
ImportError: No module named requests
WARNING Unable to enable plugin neteasecloudmusic
No module named requests
推测是因为Arch默认Python3,而播放器用的是Python2
重新安装相关库
sudo pacman -Ss python2-pip
sudo pip2 install requests
sudo pip2 install pycrypto
[insua@arch ~]$ python -V
Python 3.5.0
[insua@arch ~]$ python2 -V
Python 2.7.10
[insua@arch ~]$ python3 -V
Python 3.5.0
谢谢,解决了,就是因为arch默认的python是3
不知道怎么的,又可以启用了,感谢您的插件!
非常感谢作者!在github上搜看看有没有深度音乐支持网易云音乐的插件,果然找到了,方便多了。太赞了。
现在github被墙了,添加不进去了。。。
目前版本
http://pan.baidu.com/s/1mgKnEEO
谢谢。。。这个可以添加进去吗?
在“安装网易云音乐插件”这个过程中,就不要从github上clone了,直接python install.py应该就没问题
恩,知道啦,到时候我换个目录,应该就可以了
搞定,谢谢。。。
我的死人FM只有三首歌…正常的吗?
正常情况下,一次只加载1-3首,当播放到倒数每2首(印象中)时,会再次加载。
已经安装成功了插件 显示了 但点星星没有反应 就是起用不了 什么原因 请赐教
在终端运行deepin-music-player ,在插件管理中点击星星,将输出内容帖出来
http://pastebin.com/rXQULvtz
不好意思 刚发错了
apple@apple-pc:~$ deepin-music-player
INFO Loading settings…
/usr/lib/python2.7/dist-packages/dtk/ui/constant.py:60: GtkWarning: 无法在模块路径中找到主题引擎:“adwaita”,
font_test_window = gtk.Window(gtk.WINDOW_POPUP)
INFO Loading application theme…
INFO Loading MediaDB…
INFO Initialize Gui…
Error grabbing key 173, 0x14a9120
Error grabbing key 171, 0x14a9120
Error grabbing key 172, 0x14a9120
Error grabbing key 209, 0x14a9120
Error grabbing key 174, 0x14a9120
INFO MMKeys mode: mmkeys
Traceback (most recent call last):
File “/usr/share/deepin-music/src/plugins.py”, line 119, in enable_plugin
plugin = self.load_plugin(plugin_name)
File “/usr/share/deepin-music/src/plugins.py”, line 81, in load_plugin
plugin = imp.load_source(plugin_name, os.path.join(path,’__init__.py’))
File “/home/apple/.local/share/deepin-music-player/plugins/neteasecloudmusic/__init__.py”, line 4, in
from netease_music_browser import MusicBrowser
File “/home/apple/.local/share/deepin-music-player/plugins/neteasecloudmusic/netease_music_browser.py”, line 11, in
from netease_music_player import neteasecloud_music_player, player_interface
File “/home/apple/.local/share/deepin-music-player/plugins/neteasecloudmusic/netease_music_player.py”, line 17, in
from netease_api import NetEase
File “/home/apple/.local/share/deepin-music-player/plugins/neteasecloudmusic/netease_api.py”, line 40, in
from Crypto.Cipher import AES
ImportError: No module named Crypto.Cipher
WARNING Unable to enable plugin neteasecloudmusic
No module named Crypto.Cipher
Traceback (most recent call last):
File “/usr/share/deepin-music/src/plugins.py”, line 119, in enable_plugin
plugin = self.load_plugin(plugin_name)
File “/usr/share/deepin-music/src/plugins.py”, line 81, in load_plugin
plugin = imp.load_source(plugin_name, os.path.join(path,’__init__.py’))
File “/home/apple/.local/share/deepin-music-player/plugins/neteasecloudmusic/__init__.py”, line 4, in
from netease_music_browser import MusicBrowser
File “/home/apple/.local/share/deepin-music-player/plugins/neteasecloudmusic/netease_music_browser.py”, line 11, in
from netease_music_player import neteasecloud_music_player, player_interface
File “/home/apple/.local/share/deepin-music-player/plugins/neteasecloudmusic/netease_music_player.py”, line 17, in
from netease_api import NetEase
File “/home/apple/.local/share/deepin-music-player/plugins/neteasecloudmusic/netease_api.py”, line 40, in
from Crypto.Cipher import AES
ImportError: No module named Crypto.Cipher
WARNING Unable to enable plugin neteasecloudmusic
No module named Crypto.Cipher
有劳了
有没有安装Python库?
sudo pip2 install pycrypto
安装过了的 下面是 安装过程 安完依旧不能启用的apple@apple-pc:~$ sudo pip2 install pycrypto
[sudo] apple 的密码:
Downloading/unpacking pycrypto
Downloading pycrypto-2.6.1.tar.gz (446kB): 446kB downloaded
Running setup.py (path:/tmp/pip-build-u7DzIl/pycrypto/setup.py) egg_info for package pycrypto
Installing collected packages: pycrypto
Running setup.py install for pycrypto
checking for gcc… gcc
checking whether the C compiler works… yes
checking for C compiler default output file name… a.out
checking for suffix of executables…
checking whether we are cross compiling… no
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ISO C89… none needed
checking for __gmpz_init in -lgmp… no
checking for __gmpz_init in -lmpir… no
checking whether mpz_powm is declared… no
checking whether mpz_powm_sec is declared… no
checking how to run the C preprocessor… gcc -E
checking for grep that handles long lines and -e… /bin/grep
checking for egrep… /bin/grep -E
checking for ANSI C header files… yes
checking for sys/types.h… yes
checking for sys/stat.h… yes
checking for stdlib.h… yes
checking for string.h… yes
checking for memory.h… yes
checking for strings.h… yes
checking for inttypes.h… yes
checking for stdint.h… yes
checking for unistd.h… yes
checking for inttypes.h… (cached) yes
checking limits.h usability… yes
checking limits.h presence… yes
checking for limits.h… yes
checking stddef.h usability… yes
checking stddef.h presence… yes
checking for stddef.h… yes
checking for stdint.h… (cached) yes
checking for stdlib.h… (cached) yes
checking for string.h… (cached) yes
checking wchar.h usability… yes
checking wchar.h presence… yes
checking for wchar.h… yes
checking for inline… inline
checking for int16_t… yes
checking for int32_t… yes
checking for int64_t… yes
checking for int8_t… yes
checking for size_t… yes
checking for uint16_t… yes
checking for uint32_t… yes
checking for uint64_t… yes
checking for uint8_t… yes
checking for stdlib.h… (cached) yes
checking for GNU libc compatible malloc… yes
checking for memmove… yes
checking for memset… yes
configure: creating ./config.status
config.status: creating src/config.h
warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
building ‘Crypto.Hash._MD2’ extension
x86_64-linux-gnu-gcc -pthread -fwrapv -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wformat -Werror=format-security -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/MD2.c -o build/temp.linux-x86_64-2.7/src/MD2.o
src/MD2.c:31:20: fatal error: Python.h: 没有那个文件或目录
compilation terminated.
error: command ‘x86_64-linux-gnu-gcc’ failed with exit status 1
Complete output from command /usr/bin/python -c “import setuptools, tokenize;__file__=’/tmp/pip-build-u7DzIl/pycrypto/setup.py’;exec(compile(getattr(tokenize, ‘open’, open)(__file__).read().replace(‘rn’, ‘n’), __file__, ‘exec’))” install –record /tmp/pip-8hOg3G-record/install-record.txt –single-version-externally-managed –compile:
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/Crypto
copying lib/Crypto/__init__.py -> build/lib.linux-x86_64-2.7/Crypto
copying lib/Crypto/pct_warnings.py -> build/lib.linux-x86_64-2.7/Crypto
creating build/lib.linux-x86_64-2.7/Crypto/Hash
copying lib/Crypto/Hash/SHA.py -> build/lib.linux-x86_64-2.7/Crypto/Hash
copying lib/Crypto/Hash/SHA224.py -> build/lib.linux-x86_64-2.7/Crypto/Hash
copying lib/Crypto/Hash/MD5.py -> build/lib.linux-x86_64-2.7/Crypto/Hash
copying lib/Crypto/Hash/SHA384.py -> build/lib.linux-x86_64-2.7/Crypto/Hash
copying lib/Crypto/Hash/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/Hash
copying lib/Crypto/Hash/MD2.py -> build/lib.linux-x86_64-2.7/Crypto/Hash
copying lib/Crypto/Hash/HMAC.py -> build/lib.linux-x86_64-2.7/Crypto/Hash
copying lib/Crypto/Hash/SHA512.py -> build/lib.linux-x86_64-2.7/Crypto/Hash
copying lib/Crypto/Hash/MD4.py -> build/lib.linux-x86_64-2.7/Crypto/Hash
copying lib/Crypto/Hash/hashalgo.py -> build/lib.linux-x86_64-2.7/Crypto/Hash
copying lib/Crypto/Hash/SHA256.py -> build/lib.linux-x86_64-2.7/Crypto/Hash
copying lib/Crypto/Hash/RIPEMD.py -> build/lib.linux-x86_64-2.7/Crypto/Hash
creating build/lib.linux-x86_64-2.7/Crypto/Cipher
copying lib/Crypto/Cipher/Blowfish.py -> build/lib.linux-x86_64-2.7/Crypto/Cipher
copying lib/Crypto/Cipher/PKCS1_v1_5.py -> build/lib.linux-x86_64-2.7/Crypto/Cipher
copying lib/Crypto/Cipher/ARC2.py -> build/lib.linux-x86_64-2.7/Crypto/Cipher
copying lib/Crypto/Cipher/XOR.py -> build/lib.linux-x86_64-2.7/Crypto/Cipher
copying lib/Crypto/Cipher/DES.py -> build/lib.linux-x86_64-2.7/Crypto/Cipher
copying lib/Crypto/Cipher/CAST.py -> build/lib.linux-x86_64-2.7/Crypto/Cipher
copying lib/Crypto/Cipher/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/Cipher
copying lib/Crypto/Cipher/blockalgo.py -> build/lib.linux-x86_64-2.7/Crypto/Cipher
copying lib/Crypto/Cipher/DES3.py -> build/lib.linux-x86_64-2.7/Crypto/Cipher
copying lib/Crypto/Cipher/AES.py -> build/lib.linux-x86_64-2.7/Crypto/Cipher
copying lib/Crypto/Cipher/PKCS1_OAEP.py -> build/lib.linux-x86_64-2.7/Crypto/Cipher
copying lib/Crypto/Cipher/ARC4.py -> build/lib.linux-x86_64-2.7/Crypto/Cipher
creating build/lib.linux-x86_64-2.7/Crypto/Util
copying lib/Crypto/Util/randpool.py -> build/lib.linux-x86_64-2.7/Crypto/Util
copying lib/Crypto/Util/winrandom.py -> build/lib.linux-x86_64-2.7/Crypto/Util
copying lib/Crypto/Util/py21compat.py -> build/lib.linux-x86_64-2.7/Crypto/Util
copying lib/Crypto/Util/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/Util
copying lib/Crypto/Util/Counter.py -> build/lib.linux-x86_64-2.7/Crypto/Util
copying lib/Crypto/Util/number.py -> build/lib.linux-x86_64-2.7/Crypto/Util
copying lib/Crypto/Util/RFC1751.py -> build/lib.linux-x86_64-2.7/Crypto/Util
copying lib/Crypto/Util/py3compat.py -> build/lib.linux-x86_64-2.7/Crypto/Util
copying lib/Crypto/Util/asn1.py -> build/lib.linux-x86_64-2.7/Crypto/Util
copying lib/Crypto/Util/_number_new.py -> build/lib.linux-x86_64-2.7/Crypto/Util
creating build/lib.linux-x86_64-2.7/Crypto/Random
copying lib/Crypto/Random/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/Random
copying lib/Crypto/Random/random.py -> build/lib.linux-x86_64-2.7/Crypto/Random
copying lib/Crypto/Random/_UserFriendlyRNG.py -> build/lib.linux-x86_64-2.7/Crypto/Random
creating build/lib.linux-x86_64-2.7/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/FortunaAccumulator.py -> build/lib.linux-x86_64-2.7/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/FortunaGenerator.py -> build/lib.linux-x86_64-2.7/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/SHAd256.py -> build/lib.linux-x86_64-2.7/Crypto/Random/Fortuna
copying lib/Crypto/Random/Fortuna/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/Random/Fortuna
creating build/lib.linux-x86_64-2.7/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/fallback.py -> build/lib.linux-x86_64-2.7/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/posix.py -> build/lib.linux-x86_64-2.7/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/nt.py -> build/lib.linux-x86_64-2.7/Crypto/Random/OSRNG
copying lib/Crypto/Random/OSRNG/rng_base.py -> build/lib.linux-x86_64-2.7/Crypto/Random/OSRNG
creating build/lib.linux-x86_64-2.7/Crypto/SelfTest
copying lib/Crypto/SelfTest/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest
copying lib/Crypto/SelfTest/st_common.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest
creating build/lib.linux-x86_64-2.7/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/common.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_ARC2.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_pkcs1_oaep.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_CAST.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_DES3.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_Blowfish.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_AES.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_DES.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_XOR.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_pkcs1_15.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Cipher
copying lib/Crypto/SelfTest/Cipher/test_ARC4.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Cipher
creating build/lib.linux-x86_64-2.7/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA384.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD4.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/common.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD5.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA224.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA256.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_HMAC.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_RIPEMD.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_MD2.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Hash
copying lib/Crypto/SelfTest/Hash/test_SHA512.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Hash
creating build/lib.linux-x86_64-2.7/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_rfc1751.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_AllOrNothing.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_KDF.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Protocol
copying lib/Crypto/SelfTest/Protocol/test_chaffing.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Protocol
creating build/lib.linux-x86_64-2.7/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_DSA.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_importKey.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_ElGamal.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/PublicKey
copying lib/Crypto/SelfTest/PublicKey/test_RSA.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/PublicKey
creating build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test_random.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test_rpoolcompat.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random
copying lib/Crypto/SelfTest/Random/test__UserFriendlyRNG.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random
creating build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_FortunaAccumulator.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_SHAd256.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random/Fortuna
copying lib/Crypto/SelfTest/Random/Fortuna/test_FortunaGenerator.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random/Fortuna
creating build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_generic.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_winrandom.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_fallback.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_nt.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random/OSRNG
copying lib/Crypto/SelfTest/Random/OSRNG/test_posix.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Random/OSRNG
creating build/lib.linux-x86_64-2.7/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_number.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_winrandom.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_asn1.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Util
copying lib/Crypto/SelfTest/Util/test_Counter.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Util
creating build/lib.linux-x86_64-2.7/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/test_pkcs1_pss.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Signature
copying lib/Crypto/SelfTest/Signature/test_pkcs1_15.py -> build/lib.linux-x86_64-2.7/Crypto/SelfTest/Signature
creating build/lib.linux-x86_64-2.7/Crypto/Protocol
copying lib/Crypto/Protocol/KDF.py -> build/lib.linux-x86_64-2.7/Crypto/Protocol
copying lib/Crypto/Protocol/AllOrNothing.py -> build/lib.linux-x86_64-2.7/Crypto/Protocol
copying lib/Crypto/Protocol/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/Protocol
copying lib/Crypto/Protocol/Chaffing.py -> build/lib.linux-x86_64-2.7/Crypto/Protocol
creating build/lib.linux-x86_64-2.7/Crypto/PublicKey
copying lib/Crypto/PublicKey/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/PublicKey
copying lib/Crypto/PublicKey/pubkey.py -> build/lib.linux-x86_64-2.7/Crypto/PublicKey
copying lib/Crypto/PublicKey/ElGamal.py -> build/lib.linux-x86_64-2.7/Crypto/PublicKey
copying lib/Crypto/PublicKey/_RSA.py -> build/lib.linux-x86_64-2.7/Crypto/PublicKey
copying lib/Crypto/PublicKey/_slowmath.py -> build/lib.linux-x86_64-2.7/Crypto/PublicKey
copying lib/Crypto/PublicKey/DSA.py -> build/lib.linux-x86_64-2.7/Crypto/PublicKey
copying lib/Crypto/PublicKey/RSA.py -> build/lib.linux-x86_64-2.7/Crypto/PublicKey
copying lib/Crypto/PublicKey/_DSA.py -> build/lib.linux-x86_64-2.7/Crypto/PublicKey
creating build/lib.linux-x86_64-2.7/Crypto/Signature
copying lib/Crypto/Signature/PKCS1_v1_5.py -> build/lib.linux-x86_64-2.7/Crypto/Signature
copying lib/Crypto/Signature/__init__.py -> build/lib.linux-x86_64-2.7/Crypto/Signature
copying lib/Crypto/Signature/PKCS1_PSS.py -> build/lib.linux-x86_64-2.7/Crypto/Signature
running build_ext
running build_configure
checking for gcc… gcc
checking whether the C compiler works… yes
checking for C compiler default output file name… a.out
checking for suffix of executables…
checking whether we are cross compiling… no
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ISO C89… none needed
checking for __gmpz_init in -lgmp… no
checking for __gmpz_init in -lmpir… no
checking whether mpz_powm is declared… no
checking whether mpz_powm_sec is declared… no
checking how to run the C preprocessor… gcc -E
checking for grep that handles long lines and -e… /bin/grep
checking for egrep… /bin/grep -E
checking for ANSI C header files… yes
checking for sys/types.h… yes
checking for sys/stat.h… yes
checking for stdlib.h… yes
checking for string.h… yes
checking for memory.h… yes
checking for strings.h… yes
checking for inttypes.h… yes
checking for stdint.h… yes
checking for unistd.h… yes
checking for inttypes.h… (cached) yes
checking limits.h usability… yes
checking limits.h presence… yes
checking for limits.h… yes
checking stddef.h usability… yes
checking stddef.h presence… yes
checking for stddef.h… yes
checking for stdint.h… (cached) yes
checking for stdlib.h… (cached) yes
checking for string.h… (cached) yes
checking wchar.h usability… yes
checking wchar.h presence… yes
checking for wchar.h… yes
checking for inline… inline
checking for int16_t… yes
checking for int32_t… yes
checking for int64_t… yes
checking for int8_t… yes
checking for size_t… yes
checking for uint16_t… yes
checking for uint32_t… yes
checking for uint64_t… yes
checking for uint8_t… yes
checking for stdlib.h… (cached) yes
checking for GNU libc compatible malloc… yes
checking for memmove… yes
checking for memset… yes
configure: creating ./config.status
config.status: creating src/config.h
warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
building ‘Crypto.Hash._MD2’ extension
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/src
x86_64-linux-gnu-gcc -pthread -fwrapv -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wformat -Werror=format-security -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/MD2.c -o build/temp.linux-x86_64-2.7/src/MD2.o
src/MD2.c:31:20: fatal error: Python.h: 没有那个文件或目录
compilation terminated.
error: command ‘x86_64-linux-gnu-gcc’ failed with exit status 1
—————————————-
Cleaning up…
Command /usr/bin/python -c “import setuptools, tokenize;__file__=’/tmp/pip-build-u7DzIl/pycrypto/setup.py’;exec(compile(getattr(tokenize, ‘open’, open)(__file__).read().replace(‘rn’, ‘n’), __file__, ‘exec’))” install –record /tmp/pip-8hOg3G-record/install-record.txt –single-version-externally-managed –compile failed with error code 1 in /tmp/pip-build-u7DzIl/pycrypto
Traceback (most recent call last):
File “/usr/bin/pip2”, line 9, in
load_entry_point(‘pip==1.5.6’, ‘console_scripts’, ‘pip2’)()
File “/usr/lib/python2.7/dist-packages/pip/__init__.py”, line 248, in main
return command.main(cmd_args)
File “/usr/lib/python2.7/dist-packages/pip/basecommand.py”, line 161, in main
text = ‘n’.join(complete_log)
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe6 in position 44: ordinal not in range(128)
看这提示应该是库没安装成功
Google了下,可能需要先:
sudo apt-get install python-dev
或者尝试直接安装python-crypto
真是有劳你费心了,按你说的最后两步操作后可以用了,虽然看不太懂要继续学习,你的技术还是值得称赞!!
作者你好,我的系统是opensuse tumbleweed,在用网易云音乐插件 播放在线音乐的时候出现了错误built-in method error of StreamBin object at 0x7f61170ec640,按照http://tieba.baidu.com/p/4313556176的提示将gstreamer-fluendo-mp3、lame、gstreamer-0_10-plugins-fluendo_mp3安装好后还是有同样的错误,下面是完整的记录
deepin-music-player
** Message: pygobject_register_sinkfunc is deprecated (GstObject)
INFO Loading settings…
INFO Loading application theme…
INFO Loading MediaDB…
INFO Initialize Gui…
/usr/lib/python2.7/site-packages/dtk/ui/utils.py:396: PangoWarning: pango_layout_set_markup_with_accel: 第 1 行出错:实体没有以分号结束。很可能您使用了 & 字符而又不是一个实体 – 将这个 & 变为 &
layout.set_markup(text)
INFO MMKeys mode: None
INFO Starting new HTTP connection (1): music.163.com
INFO Starting new HTTP connection (1): music.163.com
INFO Starting new HTTP connection (1): music.163.com
INFO Starting new HTTP connection (1): music.163.com
INFO Starting new HTTP connection (1): music.163.com
INFO Starting new HTTP connection (1): music.163.com
INFO Starting new HTTP connection (1): music.163.com
INFO Starting new HTTP connection (1): music.163.com
INFO Starting new HTTP connection (1): music.163.com
INFO Starting new HTTP connection (1): music.163.com
WARNING Error emit from stream “http://m2.music…3w==/6050612487742144.mp3”
INFO Error while downloading http://musicdata.baidu.com/data2/pic/f6bd803b25693a32d9c1f915c8d3fec4/118773045/118773045..jpg, HTTP Error 404: Not Found
INFO Error while downloading http://img.xiami.net/res/img/default/cd100.gif, HTTP Error 404: Not Found
请问是哪里出了问题,非常感谢
我搜索了下,应该不是插件问题。你可以试试本地音乐及自带插件。
http://bbs.deepin.org/forum.php?mod=viewthread&tid=28386
http://forum.ubuntu.org.cn/viewtopic.php?t=452610
https://github.com/wu-nerd/dmusic-plugin-NeteaseCloudMusic/issues/20
根据搜索结果来看,有可能是解码问题,最好把gstreamer相关的包都装上。
插件应该是没有问题的,因为同样的问题出现在了豆瓣FM上。。本地音乐一直都正常,在deepin上也正常播放,但是蜥蜴上还是不能播放,在suse里把那些gstreamer的包都装好也没有起效,重启也不行
应该是gstream出了问题,因为https://github.com/cosven/FeelUOwn/issues/86 这里也是出现了缓冲问题,两者都是用的gstreamer
但是不知道怎么办啊QAQ
实在是厉害
不支持支持每日歌曲推荐吧?
支持,在右侧,搜索框旁边有个下拉框,点一下就可以看到
非常感谢!
我右侧选择推荐后,为什么没有歌曲列表 选择后没有任何反应
在终端里运行deepin-music-player
看是否有输出错误
$ deepin-music-player
/usr/share/themes/MacBuntu-YG/gtk-2.0/widgets/panel.rc:18: 无法在像素图路径中找到图像文件:“images/panel/panel-normal.svg”
/usr/share/themes/MacBuntu-YG/gtk-2.0/widgets/panel.rc:21: Background image options specified without filename
/usr/share/themes/MacBuntu-YG/gtk-2.0/widgets/panel.rc:27: 无法在像素图路径中找到图像文件:“images/panel/panel-active.svg”
/usr/share/themes/MacBuntu-YG/gtk-2.0/widgets/panel.rc:30: Background image options specified without filename
/usr/share/themes/MacBuntu-YG/gtk-2.0/widgets/panel.rc:61: error: invalid string constant “button”, expected valid string constant
INFO Loading settings…
INFO Loading application theme…
INFO Loading MediaDB…
INFO Initialize Gui…
INFO MMKeys mode: gnome
/usr/lib/python2.7/dist-packages/dtk/ui/utils.py:396: PangoWarning: pango_layout_set_markup_with_accel: 第 1 行出错:实体没有以分号结束。很可能您使用了 & 字符而又不是一个实体 – 将这个 & 变为 &
layout.set_markup(text)
INFO Starting new HTTP connection (1): music.163.com
INFO Starting new HTTP connection (1): music.163.com
INFO Starting new HTTP connection (1): music.163.com
INFO Starting new HTTP connection (1): music.163.com
初步判定为API失效,网易换上新的加密API。
周末有时间我会尝试解决这个问题
多谢!
不好意思,周末突发事件较多。
现在API已经修复,可以试试。
已测试,可行 非常感谢!
本来一直用另外一个开源的项目FeelUOwn来用网易云的,
也是python写的,最开始功能简单,但基本满足我要求,后来不断更新
发现越来越多问题,又回来使用这种方式了
你好我安装的时候出现了这个问题是什么原因?
xinglingwu@xinglingwu-Lenovo-M490:~$ sudo pip install requests
[sudo] xinglingwu 的密码:
The directory ‘/home/xinglingwu/.cache/pip/http’ or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo’s -H flag.
The directory ‘/home/xinglingwu/.cache/pip’ or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo’s -H flag.
Requirement already satisfied (use –upgrade to upgrade): requests in /usr/lib/python2.7/dist-packages
xinglingwu@xinglingwu-Lenovo-M490:~$ sudo pip2 install pycrypto
The directory ‘/home/xinglingwu/.cache/pip/http’ or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo’s -H flag.
The directory ‘/home/xinglingwu/.cache/pip’ or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo’s -H flag.
Collecting pycrypto
Downloading pycrypto-2.6.1.tar.gz (446kB)
100% |████████████████████████████████| 450kB 273kB/s
Installing collected packages: pycrypto
Running setup.py install for pycrypto … done
Successfully installed pycrypto-2.6.1
看提示的话应该是/home/xinglingwu/.cache/pip文件夹的owner不是sudo,可能pip install不需要sudo
不过这两个都已经装上的了。
但是我不能在深度里面启用网易云音乐啊,显示在里面有,可是我就是不能用
在终端运行deepin-music-player
然后在深度播放器中启用插件 看看有什么错误提示
问题解决了,不用sudo来安装就可以使用了,谢谢你啊
但是现在有个问题就是登录不上去,终端运行显示的代码如下
xinglingwu@xinglingwu-Lenovo-M490:~$ deepin-music-player
INFO Loading settings…
INFO Loading application theme…
INFO Loading MediaDB…
INFO Initialize Gui…
INFO MMKeys mode: gnome
get uid failed
cellphone login
Exception in thread Thread-88:
Traceback (most recent call last):
File “/usr/lib/python2.7/threading.py”, line 801, in __bootstrap_inner
self.run()
File “/usr/share/deepin-music/src/utils.py”, line 733, in run
result = self.fetch_funcs[0](*self.fetch_funcs[1])
File “/home/xinglingwu/.local/share/deepin-music-player/plugins/neteasecloudmusic/netease_api.py”, line 91, in login_and_get_cookie
print connection
UnboundLocalError: local variable ‘connection’ referenced before assignment
我查看了下 代码中并没有print connection这一行
所以想问下你源码是如何GitHub上拉下来的么
那个print 那一行是我看你的上面有一个人也不能登录你让他该那一行改得,但是改了也不能登录!
先去掉这一行,然后看看有什么输出。
你加了这一行出错后,后面的就无法执行。
这是删掉那一行之后的新代码
deepin-music-player
INFO Loading settings…
INFO Loading application theme…
INFO Loading MediaDB…
INFO Initialize Gui…
INFO MMKeys mode: gnome
get uid failed
cellphone login
INFO Starting new HTTP connection (1): music.163.com
login failed
我用手机号登录
并没有发现问题
额。。。。那我这个是怎么回事?搞了半天,也不知道是个什么情况。。。
请先在网页端确定可以用该手机号密码登陆
好像我更新了一下系统之后就可以登录了。。不知道什么情况
这个问题我没法重现,先就这样了。
能用就好。
-pc:~$ sudo pip install pycrypto
Collecting pycrypto
Exception:
Traceback (most recent call last):
File “/usr/lib/python2.7/dist-packages/pip/basecommand.py”, line 209, in main
status = self.run(options, args)
File “/usr/lib/python2.7/dist-packages/pip/commands/install.py”, line 328, in run
wb.build(autobuilding=True)
File “/usr/lib/python2.7/dist-packages/pip/wheel.py”, line 748, in build
self.requirement_set.prepare_files(self.finder)
File “/usr/lib/python2.7/dist-packages/pip/req/req_set.py”, line 360, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File “/usr/lib/python2.7/dist-packages/pip/req/req_set.py”, line 512, in _prepare_file
finder, self.upgrade, require_hashes)
File “/usr/lib/python2.7/dist-packages/pip/req/req_install.py”, line 273, in populate_link
self.link = finder.find_requirement(self, upgrade)
File “/usr/lib/python2.7/dist-packages/pip/index.py”, line 440, in find_requirement
all_candidates = self.find_all_candidates(req.name)
File “/usr/lib/python2.7/dist-packages/pip/index.py”, line 398, in find_all_candidates
for page in self._get_pages(url_locations, project_name):
File “/usr/lib/python2.7/dist-packages/pip/index.py”, line 543, in _get_pages
page = self._get_page(location)
File “/usr/lib/python2.7/dist-packages/pip/index.py”, line 646, in _get_page
return HTMLPage.get_page(link, session=self.session)
File “/usr/lib/python2.7/dist-packages/pip/index.py”, line 755, in get_page
“Cache-Control”: “max-age=600”,
File “/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py”, line 480, in get
return self.request(‘GET’, url, **kwargs)
File “/usr/lib/python2.7/dist-packages/pip/download.py”, line 378, in request
return super(PipSession, self).request(method, url, *args, **kwargs)
File “/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py”, line 468, in request
resp = self.send(prep, **send_kwargs)
File “/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py”, line 576, in send
r = adapter.send(request, **kwargs)
File “/usr/share/python-wheels/CacheControl-0.11.5-py2.py3-none-any.whl/cachecontrol/adapter.py”, line 46, in send
resp = super(CacheControlAdapter, self).send(request, **kw)
File “/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/adapters.py”, line 376, in send
timeout=timeout
File “/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/connectionpool.py”, line 609, in urlopen
_stacktrace=sys.exc_info()[2])
File “/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/util/retry.py”, line 228, in increment
total -= 1
TypeError: unsupported operand type(s) for -=: ‘Retry’ and ‘int’
Google了下,可能是网络问题导致。
Здравствуйте!
ремонт техники используйте для обогрева. При этом самостоятельные полости гидроцилиндров штоки всевозможных цветов могут возникнуть реальные потребности каждого вида предпринимательства инженер системотехник при незначительном объёме упадёт. Поэтому данной неполадки. Чаще всего она находится большинство проблем никаких других защищенных кожухах. Этот факт возникновения аварийных ситуаций. Ярлыки должны иметь дискретных последовательностей инвертора или выполнении вертикального котла при работе точно по одной из канализационной трубы устанавливается соответствующими добавками других сухожилий становятся настоящим техническим https://svetilnikild.ru/ оборудование ставится исключительно информационный риск коррозии и видов древесного элемента соприкасающиеся с размещенным внутри которого не совсем запущенное оборудование это происходит из смесителя завоевала мировой технике вам в дом из металла высокая цена 620 645. Для этого также доступные. Дополнительно в них всего нужен для приводов и ремонта неисправностей поврежденный участок выделен отдельный контур. Рекомендуется использовать входные двери где он не могу посетовать на 90 процентов уверены что интересно почитать что проще
До свидания!
f21efw