I am trying to run pip install tsne
for python2.7 and I keep on getting the same error. I followed the instructions on http://bickson.blogspot.com/2011/02/installing-blaslapackitpp-on-amaon-ec2.html and installed LAPACK/BLAS which I thought should have solved the problem. Nothing helped. What am I doing wrong? I am less familiar with bash.
running build_ext cythoning tsne/bh_sne.pyx to tsne/bh_sne.cpp building 'bh_sne' extension creating build/temp.linux-x86_64-2.7 creating build/temp.linux-x86_64-2.7/tsne creating 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: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default] 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: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default] 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: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default] 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: cannot find -lcblas collect2: error: ld returned 1 exit status error: command 'c++' failed with exit status 1 ---------------------------------------- Cleaning up... Command /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 failed with error code 1 in /home/ubuntu/env/work/build/tsne Traceback (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' codec can't decode byte 0xe2 in position 42: ordinal not in range(128)
Ubuntu doesn't have a binary distribution of either cblas or openblas, which are required for tsne according to their github. However, ATLAS, which is available on Ubuntu, comes with precompiled cblas.
In Ubuntu, debian, that should work with:
apt-get install libatlas-base-dev
https://launchpad.net/ubuntu/+source/atlas
If you need to have different compiler options, you'll have to build openblas yourself.
And check that you get libcblas.a in /usr/lib
Edited: Corrected package name.
Use this:
sudo apt-get install libblas-dev liblapack-dev
Download a copy of OpenBLAS and compile it yourself. Install it into /usr/local
using make install
. There are OpenBLAS and ATLAS packages and whatever else in the official repositories, but their performance is suspect.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With