SciPy/Python install on Ubuntu

36,657

Solution 1

PyPM is a good way to install it. The version is beta 0.10.1 and it includes all of the dependencies. You need Active Python to access PyPM, but that you should be able to install easily.

pypm install scipi

Solution 2

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.

Solution 3

Had the same problem. The following worked for me:

sudo apt-get install libblas-dev
sudo apt-get install liblapack-dev
sudo apt-get install gfortran

Solution 4

You need to download and install Atlas as the output suggests. After that, retry the SciPy installation.

Other option would be apt-get install older version. This will auto-install all the dependencies; and then install the newer one by hand. This will result in two libraries on your machine, one in /usr/share/pyshared most likely and another one somewhere under /usr/local, but you can make sure which one is loaded by altering the module loading path.

Also, if you will ommit --prefix=/usr/local, while installing newer version on top of older one, it will just get overwritten and the path mangling won't be required.

Solution 5

You're trying to build SciPy from source.

If you just want to install SciPy, use this command:

sudo apt-get install python-scipy
Share:
36,657
msusplugas
Author by

msusplugas

Updated on July 09, 2022

Comments

  • msusplugas
    msusplugas almost 2 years

    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?