Yael for ubuntu 部署日志 - [内含ssaupd_的问题,python部署]

做高维数据索引实验,发现有个比较好的c/python/matlab库,yael-链接地址

不过目前只支持linux和macOS。

特此将安装过程记录下来:

版本信息

  • yael_v438
  • ubuntu 14.04 或者 14.10

准备工作

安装gfortran, blas, lapack, swig

$ sudo apt-get install gfortran
$ sudo apt-get install libblas3gf
$ sudo apt-get install liblapack3gf
$ sudo apt-get install swig

编译核心库

切换到yael目录下

$ sudo ./configure.sh
$ # 如果CPU支持sse4:$ sudo ./configure.sh --msse4
$ # 打开生成的makefile.inc, 将其中的python2.x修改为计算机上
$ # 对应的python版本(例如我的是python2.7)
$ sudo make

此时yael下核心目录的C代码编译完毕,可以到test/c和prog下运行测试代码。

matlab

matlab目录下的编译过程中遇到了一个ssaupd_, sseupd_ underfined的问题(在Make.m的第13行及之后)。在这篇帖子的帮助下得以修正。
具体来讲,需要更改三处:

  • 检查libarpack的安装,使用apt-get安装libarpack
  • 将configure.sh中的 arpackldflags=/usr/lib64/libarpack.so.2
    改成arpackldflags=/usr/lib/libarpack.so.2
  • 将子文件matlab中的Make.m中的 -lmwarpack从LDFLAGS中移出来,放在选项-lmwblas的后面

然后,切换到yael目录下

$ cd matlab目录
$ matlab -nojvm  // 命令行运行matlab
$ Make

python

$ sudo ./configure.sh --enable-numpy
$ make
$ # 如果要使用python脚本,需要添加--enable-numpy,否则会出现python代码调用的部分方法不存在的问题

之后将yael库中的python库文件复制到系统python的包中,例如系统python版本是2.7,具体如下:

  • 在/usr/local/lib/python2.7/dist-packages/下建立一个yael目录
  • 将yael核心目录中的所有.py文件连同编译出的_yael.so文件一起复制到新创建的yael目录中即完成python版本yael的安装
  • yael提供了ynumpy, yael, threads, yutils几个库,可以在自己的python脚本中调用,调用方式为from yael import yael, ynumpy

注意_yael.so文件十分重要,一定记得复制。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章