macOS安装pyeemd

01 安装GSL

下载GSL安装包 http://mirrors.ustc.edu.cn/gnu/gsl/gsl-2.4.tar.gz
解压后进入文件夹进行安装

1
2
3
4
cd gsl-2.4
./configure
make
make install

02 安装libeemd

下载libeemd安装包 https://bitbucket.org/luukko/libeemd/get/4aaaea9bbc52.zip

解压后进入文件夹进行安装

1
2
3
cd luukko-libeemd-4aaaea9bbc52/
make
make install

这里make时可能会报如下错:

1
2
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'

原因在于,若已经安装Xcode,则系统会默认将gcc,g++全部指向clang,而clang不支持-fopenmp参数,可通过如下验证。

1
2
3
gcc  --version
g++ --version
clang --version

gcc-g++-clang-version

可看到,确实默认全部指向clang。只有使用gcc-7(这里的7是版本号,可以通过输入gcc后按两下Tab键查看单独安装的gcc指令)才能显式指定使用gcc。

gcc-7-version

解除绑定方法可以参考将Mac OS X 系统的 C、C++ 编译器从默认的 Clang 切换到 GCC

或者修改文件夹内的Makefile文件,将位于文章尾部的两处使用gcc的指令改为gcc-7,效果如下

gcc-to-gcc-7

之后即可使用gcc完成编译,libeemd编译完成

03 安装pyeemd

下载pyeemd安装包 https://bitbucket.org/luukko/pyeemd/get/bfc6a5873741.zip

解压后进入文件夹

1
2
cd luukko-pyeemd-bfc6a5873741/
python setup.py install

此时打开python,输入import pyeemd会报错,找不到编译文件,因为在setup.py运行时不会讲上一步中编译好的libeemd.so.1.4.1文件移动到指定位置。

pyeemd-c-library-not-found

建议移动当前工作目录到其他目录下(如用户文件夹目录)尝试以上操作,观察报错的地址,找到该文件夹,将上一步中libeemd编译的libeemd.so.1.4.1文件移动到该文件夹(我这里是/Users/bunnyxt/.local/lib/python3.6/site-packages/pyeemd-1.4-py3.6.egg/pyeemd),并重命名为libeemd.so,效果如下

pyeemd-add-libeemd

之后再在python中import就不会报错了

可能需要安装的内容

参考文章