BLAS/LAPACK未安装:如何安装?

16
我正在尝试在python2.7中运行“pip install tsne”,但我一直收到相同的错误。 我遵循了http://bickson.blogspot.com/2011/02/installing-blaslapackitpp-on-amaon-ec2.html上的说明并安装了LAPACK / BLAS,我认为这应该解决了问题。 但没有帮助。 我做错了什么? 我对bash不太熟悉。
running build_ext
将tsne / bh_sne.pyx转换为tsne / bh_sne.cpp 创建“bh_sne”扩展
创建build / temp.linux-x86_64-2.7
创建build / temp.linux-x86_64-2.7 / tsne 创建build / temp.linux-x86_64-2.7 / tsne / bh_sne_src
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/env/work/local/lib/python2.7/site-packages/numpy/core/include -I/usr/local/include -Itsne/bh_sne_src/ -I/usr/include/python2.7 -c tsne/bh_sne_src/quadtree.cpp -o build/temp.linux-x86_64-2.7/tsne/bh_sne_src/quadtree.o -msse2 -O3 -fPIC -w
cc1plus:警告:命令行选项“-Wstrict-prototypes”对C / ObjC有效,但对C ++无效[默认情况下启用]x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/env/work/local/lib/python2.7/site-packages/numpy/core/include -I/usr/local/include -Itsne/bh_sne_src/ -I/usr/include/python2.7 -c tsne/bh_sne_src/tsne.cpp -o build/temp.linux-x86_64-2.7/tsne/bh_sne_src/tsne.o -msse2 -O3 -fPIC -w
cc1plus: 警告:命令行选项"-Wstrict-prototypes"只在C/ObjC中有效,而不适用于C++ [默认启用]
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/env/work/local/lib/python2.7/site-packages/numpy/core/include -I/usr/local/include -Itsne/bh_sne_src/ -I/usr/include/python2.7 -c tsne/bh_sne.cpp -o build/temp.linux-x86_64-2.7/tsne/bh_sne.o -msse2 -O3 -fPIC -w
cc1plus: 警告:命令行选项"-Wstrict-prototypes"只在C/ObjC中有效,而不适用于C++ [默认启用]c++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/tsne/bh_sne_src/quadtree.o build/temp.linux-x86_64-2.7/tsne/bh_sne_src/tsne.o build/temp.linux-x86_64-2.7/tsne/bh_sne.o -L/usr/local/lib -o build/lib.linux-x86_64-2.7/bh_sne.so -lcblas
/usr/bin/ld: 找不到-lcblas
collect2: 错误:ld 返回了 1 的状态
错误:命令'c++' 失败,退出状态为1
---------------------------------------- 正在清理... 命令 /home/ubuntu/env/work/bin/python -c "import setuptools, tokenize;__file__='/home/ubuntu/env/work/build/tsne/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-3X17dU-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/ubuntu/env/work/include/site/python2.7 失败,出现错误代码1于/home/ubuntu/env/work/build/tsne 回溯(most recent call last): File "/home/ubuntu/env/work/bin/pip", line 11, in sys.exit(main()) File "/home/ubuntu/env/work/local/lib/python2.7/site-packages/pip/__init__.py", line 185, in main return command.main(cmd_args) File "/home/ubuntu/env/work/local/lib/python2.7/site-packages/pip/basecommand.py", line 161, in main text = '\n'.join(complete_log) UnicodeDecodeError:'ascii' 编解码器无法解码第42个位置的0xe2字节:该数值不在指定的范围内128。

请验证在\usr\local\lib目录下是否确实存在名为libcblas.alibcblas.so的库。 - Roland Smith
3个回答

28

根据他们的github,tsne需要cblas或openblas二进制分发版,但Ubuntu没有。不过,ATLAS在Ubuntu上可用,并且预编译了cblas。

在Ubuntu、Debian上,应该可以使用以下命令:

apt-get install libatlas-base-dev 

https://launchpad.net/ubuntu/+source/atlas

如果您需要使用不同的编译选项,您需要自己构建openblas。

并且检查在/usr/lib中是否有libcblas.a文件。

编辑:已更正软件包名称。


它说:“E:无法找到软件包atlas”。 - pg2455
请看我的编辑,尝试使用更新后的命令。你确定是要用 "libcbllas.a" 而不是 "libcblas.a" 吗? - Michel Müller
嘿,我刚刚检查了 /usr/lib 目录,发现有 libblas.so 和 liblapack.so。 - pg2455
根据您的指示,我现在可以看到libcblas.so.3,但是没有libcblas.a。我仍然无法运行pip install tsne,它需要BLAS,而且似乎我已经安装了它。它给出了与上述相同的错误。我的机器出了什么问题? - pg2455
@MichelMüller 非常感谢您的帮助。这个方法对我起了作用。 - pg2455
显示剩余4条评论

8
请使用以下内容:
sudo apt-get install libblas-dev liblapack-dev

2

下载OpenBLAS的副本并自行编译。使用make install将其安装到/usr/local中。官方存储库中有OpenBLAS和ATLAS包以及其他任何内容,但它们的性能值得怀疑。


警告:OpenBLAS没有cblas符号。 - ndtreviv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接