网易云音乐插件 for 深度音乐播放器

四 12 2015 Published by under Linux/Ubuntu

写了个深度音乐播放器的网易云音乐插件,可在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 深度音乐播放器



74 responses so far

  • bsidb说道:

    大神,容我在此表达感激之情!太好用了!
    估计是受限于深度音乐的API,没法加红心,如果能边听边加红心就更好了,还是感谢!

  • werrw说道:

    怎么收索添加音乐?不会用。。。

  • rongp说道:

    您好 插件已经启动搞了,我怎么登录不了网易账号? 

    • a-nerd.info说道:

      首先请认账号密码正确
      如果密码无误还是无法登陆,在neteasecloudmusic/netease_api.py第90行下方添加print connection,用空格与其他行对齐,重新python install.py,在终端运行deepin-music-player ,将输出内容帖出来。

      • rongp说道:

        多谢这么快恢复  可能是因为我密码错误导致 多谢!
        另外 我也是做开发的  想问一下  做一个播放器插件需要什么技术?
        我主要是linux kerenl 和 应用开发的

        • a-nerd.info说道:

          看你做什么插件了
          深度音乐播放器使用的语言为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来实现第一项,那问题就简单太多了。

      • rongp说道:

        另外,能否做到想百度或者豆瓣等插件一样 就是好像直接是网易云网页版界面布局一样

      • rongp说道:

        也就是http://git.oschina.net/greedisland1017/NetEaseMusic里面类似的效果

  • 竹子说道:

    arch下使用插件,无法安装,py脚本有错误,不知道该怎么解决。

    • a-nerd.info说道:

      能否启用插件?
      在终端运行 deepin-music-player
      帖出错误提示

      • 竹子说道:

        ➜ dmusic-plugin-NeteaseCloudMusic git:(master) python install.py
        File “install.py”, line 26
        except Exception ,e:
        ^
        SyntaxError: invalid syntax
        就是这个情况 根据使用百度音乐插件的办法,即使安装上了,还是无法启用。

        • 因苏阿说道:

          我的还是无法用啊,也是这个错误,系统arch

          • a-nerd.info说道:

            没有语法错误啊
            分别用python2/3运行试试

            install.py的作用是将neteasecloudmusic目录复制到~/.local/share/deepin-music-player/plugins下,如果还是不行可以手动复制

            • 因苏阿说道:

              谢谢,我用python2安装上了,但是始终无法在插件里启用,点五角星就是不变黄,其他的插件没问题

              • a-nerd.info说道:

                在终端运行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

          • 因苏阿说道:

            [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

      • 竹子说道:

        不知道怎么的,又可以启用了,感谢您的插件!

  • Youth.霖说道:

    非常感谢作者!在github上搜看看有没有深度音乐支持网易云音乐的插件,果然找到了,方便多了。太赞了。

  • 王睿说道:

    现在github被墙了,添加不进去了。。。

  • aiden说道:

    我的死人FM只有三首歌…正常的吗?

  • 清月说道:

    已经安装成功了插件 显示了 但点星星没有反应 就是起用不了 什么原因 请赐教

  • 清月说道:

    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

    有劳了

    • a-nerd.info说道:

      有没有安装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)

  • 鱼头说道:

    作者你好,我的系统是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
    请问是哪里出了问题,非常感谢

  • 说道:

    实在是厉害

  • rongp说道:

    不支持支持每日歌曲推荐吧?

    • a-nerd.info说道:

      支持,在右侧,搜索框旁边有个下拉框,点一下就可以看到

      • rongp说道:

        非常感谢!

      • rongp说道:

        我右侧选择推荐后,为什么没有歌曲列表 选择后没有任何反应

        • a-nerd.info说道:

          在终端里运行deepin-music-player
          看是否有输出错误

          • rongp说道:

            $ 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

      • rongp说道:

        本来一直用另外一个开源的项目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

  • 梦心灵说道:

    但是现在有个问题就是登录不上去,终端运行显示的代码如下

    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

  • yunyan说道:

    -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’

发表评论