SciPy/Python install on Ubuntu

Posted on Dec 7, 2022

Question

I'm currently following the tutorial Installing the SciPy Stack to install SciPy on Ubuntu 12.04 (Precise Pangolin) (I can't use apt-get install because I need a recent version).

However, I get errors when I do the following commands:

python setup.py build
sudo python setup.py install --prefix=/usr/local   # Installs to /usr/local

python setup.py build

michael@michael-laptop-ubuntu:~/Downloads/scipy-0.11.0rc1$ python setup.py buildRunning from scipy source directory. blas_opt_info: blas_mkl_info: libraries mkl,vml,guide not found in /usr/local/lib libraries mkl,vml,guide not found in /usr/lib libraries mkl,vml,guide not found in /usr/lib/i386-linux-gnu NOT AVAILABLE

atlas_blas_threads_info: Setting PTATLAS=ATLAS libraries ptf77blas,ptcblas,atlas not found in /usr/local/lib libraries ptf77blas,ptcblas,atlas not found in /usr/lib/sse2 libraries ptf77blas,ptcblas,atlas not found in /usr/lib libraries ptf77blas,ptcblas,atlas not found in /usr/lib/i386-linux-gnu/sse2 libraries ptf77blas,ptcblas,atlas not found in /usr/lib/i386-linux-gnu NOT AVAILABLE

atlas_blas_info: libraries f77blas,cblas,atlas not found in /usr/local/lib libraries f77blas,cblas,atlas not found in /usr/lib/sse2 libraries f77blas,cblas,atlas not found in /usr/lib libraries f77blas,cblas,atlas not found in /usr/lib/i386-linux-gnu/sse2 libraries f77blas,cblas,atlas not found in /usr/lib/i386-linux-gnu NOT AVAILABLE

/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py:1423: UserWarning: Atlas (http://math-atlas.sourceforge.net/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [atlas]) or by setting the ATLAS environment variable. warnings.warn(AtlasNotFoundError.doc) blas_info: libraries blas not found in /usr/local/lib libraries blas not found in /usr/lib libraries blas not found in /usr/lib/i386-linux-gnu NOT AVAILABLE

/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py:1432: UserWarning: Blas (http://www.netlib.org/blas/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [blas]) or by setting the BLAS environment variable. warnings.warn(BlasNotFoundError.doc) blas_src_info: NOT AVAILABLE

/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py:1435: UserWarning: Blas (http://www.netlib.org/blas/) sources not found. Directories to search for the sources can be specified in the numpy/distutils/site.cfg file (section [blas_src]) or by setting the BLAS_SRC environment variable. warnings.warn(BlasSrcNotFoundError.doc) Traceback (most recent call last): File “setup.py”, line 208, in <module> setup_package() File “setup.py”, line 199, in setup_package configuration=configuration ) File “/usr/lib/python2.7/dist-packages/numpy/distutils/core.py”, line 152, in setup config = configuration() File “setup.py”, line 136, in configuration config.add_subpackage(‘scipy’) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 1002, in add_subpackage caller_level = 2) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 971, in get_subpackage caller_level = caller_level + 1) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 908, in _get_configuration_from_setup_py config = setup_module.configuration(*args) File “scipy/setup.py”, line 8, in configuration config.add_subpackage(‘integrate’) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 1002, in add_subpackage caller_level = 2) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 971, in get_subpackage caller_level = caller_level + 1) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 908, in _get_configuration_from_setup_py config = setup_module.configuration(*args) File “scipy/integrate/setup.py”, line 10, in configuration blas_opt = get_info(‘blas_opt’,notfound_action=2) File “/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py”, line 320, in get_info return cl().get_info(notfound_action) File “/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py”, line 471, in get_info raise self.notfounderror(self.notfounderror.doc) numpy.distutils.system_info.BlasNotFoundError: Blas (http://www.netlib.org/blas/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [blas]) or by setting the BLAS environment variable. Error in sys.excepthook: Traceback (most recent call last): File “/usr/lib/python2.7/dist-packages/apport_python_hook.py”, line 64, in apport_excepthook from apport.fileutils import likely_packaged, get_recent_crashes File “/usr/lib/python2.7/dist-packages/apport/init.py”, line 1, in <module> from apport.report import Report File “/usr/lib/python2.7/dist-packages/apport/report.py”, line 18, in <module> import problem_report File “/usr/lib/python2.7/dist-packages/problem_report.py”, line 14, in <module> import zlib, base64, time, sys, gzip, struct, os File “/usr/lib/python2.7/gzip.py”, line 10, in <module> import io File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/io/init.py”, line 83, in <module> from matlab import loadmat, savemat, byteordercodes File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/io/matlab/init.py”, line 11, in <module> from mio import loadmat, savemat File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/io/matlab/mio.py”, line 15, in <module> from mio4 import MatFile4Reader, MatFile4Writer File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/io/matlab/mio4.py”, line 9, in <module> import scipy.sparse File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/sparse/init.py”, line 180, in <module> from csr import * File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/sparse/csr.py”, line 12, in <module> from sparsetools import csr_tocsc, csr_tobsr, csr_count_blocks,
File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/sparse/sparsetools/init.py”, line 4, in <module> from csr import * File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/sparse/sparsetools/csr.py”, line 25, in <module> _csr = swig_import_helper() File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/sparse/sparsetools/csr.py”, line 17, in swig_import_helper import _csr ImportError: No module named _csr

Original exception was: Traceback (most recent call last): File “setup.py”, line 208, in <module> setup_package() File “setup.py”, line 199, in setup_package configuration=configuration ) File “/usr/lib/python2.7/dist-packages/numpy/distutils/core.py”, line 152, in setup config = configuration() File “setup.py”, line 136, in configuration config.add_subpackage(‘scipy’) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 1002, in add_subpackage caller_level = 2) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 971, in get_subpackage caller_level = caller_level + 1) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 908, in _get_configuration_from_setup_py config = setup_module.configuration(*args) File “scipy/setup.py”, line 8, in configuration config.add_subpackage(‘integrate’) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 1002, in add_subpackage caller_level = 2) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 971, in get_subpackage caller_level = caller_level + 1) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 908, in _get_configuration_from_setup_py config = setup_module.configuration(*args) File “scipy/integrate/setup.py”, line 10, in configuration blas_opt = get_info(‘blas_opt’,notfound_action=2) File “/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py”, line 320, in get_info return cl().get_info(notfound_action) File “/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py”, line 471, in get_info raise self.notfounderror(self.notfounderror.doc) numpy.distutils.system_info.BlasNotFoundError: Blas (http://www.netlib.org/blas/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [blas]) or by setting the BLAS environment variable.

sudo python setup.py install --prefix=/usr/local # installs to /usr/local

michael@michael-laptop-ubuntu:~/Downloads/scipy-0.11.0rc1$ sudo python setup.py install --prefix=/usr/local
[sudo] password for michael: 
Running from scipy source directory.
blas_opt_info:
blas_mkl_info:
  libraries mkl,vml,guide not found in /usr/local/lib
  libraries mkl,vml,guide not found in /usr/lib
  libraries mkl,vml,guide not found in /usr/lib/i386-linux-gnu
  NOT AVAILABLE

atlas_blas_threads_info: Setting PTATLAS=ATLAS libraries ptf77blas,ptcblas,atlas not found in /usr/local/lib libraries ptf77blas,ptcblas,atlas not found in /usr/lib/sse2 libraries ptf77blas,ptcblas,atlas not found in /usr/lib libraries ptf77blas,ptcblas,atlas not found in /usr/lib/i386-linux-gnu/sse2 libraries ptf77blas,ptcblas,atlas not found in /usr/lib/i386-linux-gnu NOT AVAILABLE

atlas_blas_info: libraries f77blas,cblas,atlas not found in /usr/local/lib libraries f77blas,cblas,atlas not found in /usr/lib/sse2 libraries f77blas,cblas,atlas not found in /usr/lib libraries f77blas,cblas,atlas not found in /usr/lib/i386-linux-gnu/sse2 libraries f77blas,cblas,atlas not found in /usr/lib/i386-linux-gnu NOT AVAILABLE

/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py:1423: UserWarning: Atlas (http://math-atlas.sourceforge.net/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [atlas]) or by setting the ATLAS environment variable. warnings.warn(AtlasNotFoundError.doc) blas_info: libraries blas not found in /usr/local/lib libraries blas not found in /usr/lib libraries blas not found in /usr/lib/i386-linux-gnu NOT AVAILABLE

/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py:1432: UserWarning: Blas (http://www.netlib.org/blas/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [blas]) or by setting the BLAS environment variable. warnings.warn(BlasNotFoundError.doc) blas_src_info: NOT AVAILABLE

/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py:1435: UserWarning: Blas (http://www.netlib.org/blas/) sources not found. Directories to search for the sources can be specified in the numpy/distutils/site.cfg file (section [blas_src]) or by setting the BLAS_SRC environment variable. warnings.warn(BlasSrcNotFoundError.doc) Traceback (most recent call last): File “setup.py”, line 208, in <module> setup_package() File “setup.py”, line 199, in setup_package configuration=configuration ) File “/usr/lib/python2.7/dist-packages/numpy/distutils/core.py”, line 152, in setup config = configuration() File “setup.py”, line 136, in configuration config.add_subpackage(‘scipy’) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 1002, in add_subpackage caller_level = 2) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 971, in get_subpackage caller_level = caller_level + 1) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 908, in _get_configuration_from_setup_py config = setup_module.configuration(*args) File “scipy/setup.py”, line 8, in configuration config.add_subpackage(‘integrate’) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 1002, in add_subpackage caller_level = 2) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 971, in get_subpackage caller_level = caller_level + 1) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 908, in _get_configuration_from_setup_py config = setup_module.configuration(*args) File “scipy/integrate/setup.py”, line 10, in configuration blas_opt = get_info(‘blas_opt’,notfound_action=2) File “/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py”, line 320, in get_info return cl().get_info(notfound_action) File “/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py”, line 471, in get_info raise self.notfounderror(self.notfounderror.doc) numpy.distutils.system_info.BlasNotFoundError: Blas (http://www.netlib.org/blas/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [blas]) or by setting the BLAS environment variable. Error in sys.excepthook: Traceback (most recent call last): File “/usr/lib/python2.7/dist-packages/apport_python_hook.py”, line 64, in apport_excepthook from apport.fileutils import likely_packaged, get_recent_crashes File “/usr/lib/python2.7/dist-packages/apport/init.py”, line 1, in <module> from apport.report import Report File “/usr/lib/python2.7/dist-packages/apport/report.py”, line 18, in <module> import problem_report File “/usr/lib/python2.7/dist-packages/problem_report.py”, line 14, in <module> import zlib, base64, time, sys, gzip, struct, os File “/usr/lib/python2.7/gzip.py”, line 10, in <module> import io File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/io/init.py”, line 83, in <module> from matlab import loadmat, savemat, byteordercodes File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/io/matlab/init.py”, line 11, in <module> from mio import loadmat, savemat File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/io/matlab/mio.py”, line 15, in <module> from mio4 import MatFile4Reader, MatFile4Writer File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/io/matlab/mio4.py”, line 9, in <module> import scipy.sparse File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/sparse/init.py”, line 180, in <module> from csr import * File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/sparse/csr.py”, line 12, in <module> from sparsetools import csr_tocsc, csr_tobsr, csr_count_blocks,
File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/sparse/sparsetools/init.py”, line 4, in <module> from csr import * File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/sparse/sparsetools/csr.py”, line 25, in <module> _csr = swig_import_helper() File “/home/michael/Downloads/scipy-0.11.0rc1/scipy/sparse/sparsetools/csr.py”, line 17, in swig_import_helper import _csr ImportError: No module named _csr

Original exception was: Traceback (most recent call last): File “setup.py”, line 208, in <module> setup_package() File “setup.py”, line 199, in setup_package configuration=configuration ) File “/usr/lib/python2.7/dist-packages/numpy/distutils/core.py”, line 152, in setup config = configuration() File “setup.py”, line 136, in configuration config.add_subpackage(‘scipy’) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 1002, in add_subpackage caller_level = 2) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 971, in get_subpackage caller_level = caller_level + 1) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 908, in _get_configuration_from_setup_py config = setup_module.configuration(*args) File “scipy/setup.py”, line 8, in configuration config.add_subpackage(‘integrate’) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 1002, in add_subpackage caller_level = 2) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 971, in get_subpackage caller_level = caller_level + 1) File “/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py”, line 908, in _get_configuration_from_setup_py config = setup_module.configuration(*args) File “scipy/integrate/setup.py”, line 10, in configuration blas_opt = get_info(‘blas_opt’,notfound_action=2) File “/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py”, line 320, in get_info return cl().get_info(notfound_action) File “/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py”, line 471, in get_info raise self.notfounderror(self.notfounderror.doc) numpy.distutils.system_info.BlasNotFoundError: Blas (http://www.netlib.org/blas/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [blas]) or by setting the BLAS environment variable.

Moreover, how do I test if this module was installed correctly?

Answer

My usual work flow is to use a virtualenv to have a Python distribution with up-to-date packages.

Within this environment you can than install and update all packages you need with pip and without any sudo calls.

So if you only need SciPy (and NumPy) this would be:

$ sudo apt-get install python-virtualenv python-pip
$ sudo apt-get build-dep python-numpy python-scipy
$ # Create virtualenv in home
$ virtualenv .myenv
$ # Activate the virtualenv
$ source .myenv/bin/activate
(myenv)$ pip install -U numpy
(myenv)$ pip install -U scipy

(If you don't have root access, you can install virtualenv and pip as described here. However, you need the dependencies of NumPy and SciPy.)

You can include source .myenv/bin/activate in your .bash_profile and your shell will always start with that environment. If you use requirement files it is easy to install and maintain the same environments on all your machines.