When I do pip install in my cluster (my cluster is designed to use intel compiler icpc), I get the following error:
$ pip install cvxopt --user
Collecting cvxopt
Using cached cvxopt-1.1.8.tar.gz
Building wheels for collected packages: cvxopt
Running setup.py bdist_wheel for cvxopt ... error
Complete output from command /share/apps/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-sxngrO/cvxopt/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpTcH01Zpip-wheel- --python-tag cp27:
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/cvxopt
copying src/python/coneprog.py -> build/lib.linux-x86_64-2.7/cvxopt
copying src/python/printing.py -> build/lib.linux-x86_64-2.7/cvxopt
copying src/python/msk.py -> build/lib.linux-x86_64-2.7/cvxopt
copying src/python/misc.py -> build/lib.linux-x86_64-2.7/cvxopt
copying src/python/__init__.py -> build/lib.linux-x86_64-2.7/cvxopt
copying src/python/cvxprog.py -> build/lib.linux-x86_64-2.7/cvxopt
copying src/python/info.py -> build/lib.linux-x86_64-2.7/cvxopt
copying src/python/modeling.py -> build/lib.linux-x86_64-2.7/cvxopt
copying src/python/solvers.py -> build/lib.linux-x86_64-2.7/cvxopt
running build_ext
building 'base' extension
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/src
creating build/temp.linux-x86_64-2.7/src/C
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/share/apps/include/python2.7 -c src/C/base.c -o build/temp.linux-x86_64-2.7/src/C/base.o
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/share/apps/include/python2.7 -c src/C/dense.c -o build/temp.linux-x86_64-2.7/src/C/dense.o
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/share/apps/include/python2.7 -c src/C/sparse.c -o build/temp.linux-x86_64-2.7/src/C/sparse.o
gcc -pthread -shared build/temp.linux-x86_64-2.7/src/C/base.o build/temp.linux-x86_64-2.7/src/C/dense.o build/temp.linux-x86_64-2.7/src/C/sparse.o -L/usr/lib -lm -llapack -lblas -o build/lib.linux-x86_64-2.7/cvxopt/base.so
/usr/bin/ld: cannot find -llapack
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
I think there might be 2 problems:
it uses gcc rather than icpc which is what our cluster is set up for... So the question is that is it possible to specify icpc for all my installations?
/usr/bin/ld: cannot find -llapack: lapack library is not found ... Lapack library is missing ... As I do not want to install from source, is there some way that I could use package manager to install all those dependencies? Thank you.
You can configure the compiler for one installation with pip in the following way:
pip install --global-option build_ext --global-option --compiler=<compiler_name> <package_name>
just remember to swap <compiler_name> to the name of your compiler (icpc) and <package_name> to cvxopt
Please see this answer for a similar approach on Windows.
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