2012-08-08 74 views
30

安裝我目前正在按照教程Installing the SciPy Stack在Ubuntu 12.04  (精確穿山甲)安裝SciPy(我不能使用apt-get install,因爲我需要一個最新版本)。SciPy的/ Python的在Ubuntu

但是,我得到的錯誤,當我做下面的命令:

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

python setup.py build 

[email protected]:~/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的蟒蛇的setup.py安裝前綴=在/ usr /本地安裝#到/ usr /本地

[email protected]:~/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. 

此外,如何測試此模塊是否正確安裝?

+0

http://stackoverflow.com/questions/7496547/python-scipy-needs-blas/14541175#14541175也是一個類似的問題。這可能是有用的 – AIB 2014-02-06 07:44:11

回答

2

PyPM是安裝它的好方法。該版本是beta 0.10.1,它包含所有的依賴關係。您需要Active Python才能訪問PyPM,但您應該可以輕鬆安裝。

pypm install scipi 
4

根據輸出結果,您需要下載並安裝Atlas。之後,重試SciPy安裝。

其他選項將是apt-get install舊版本。這將自動安裝所有依賴項;然後手動安裝新的。這將導致您的計算機上有兩個庫,一個最可能位於/usr/share/pyshared之一,另一個位於/usr/local之下,但您可以通過更改模塊加載路徑來確定哪一個庫已加載。

此外,如果您將省略--prefix=/usr/local,而在較舊的版本上安裝較新的版本,則只會被覆蓋並且不需要路徑修改。

+10

您可能需要'apt-get build-dep scipy'來安裝編譯它所需的-dev包。只是'apt-get install scipy'不會安裝這些。 – 2012-08-08 12:16:35

+0

@ThomasK你值得開始我的好人:) – 2013-11-17 11:28:03

26

我通常的工作流程是使用virtualenv來創建包含最新軟件包的Python發行版。

在此環境中,您可以使用pip並且不需要任何sudo調用來安裝和更新所需的所有軟件包。

所以,如果你只需要SciPy(和NumPy),這將是:

$ 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 

(如果你沒有root訪問權限,可以作爲描述here安裝virtualenvpip但是,你需要的NumPy和SciPy的依賴關係)。

您可以在您的.bash_profile中包含source .myenv/bin/activate,並且您的shell始終以該環境開始。如果您使用requirement files,則可以輕鬆在所有機器上安裝和維護相同的環境。

+1

非常感謝。我錯過了「sudo apt-get build-dep python-numpy python-scipy」步驟。 – JayCrossler 2014-03-17 18:20:51

2
sudo apt-get install python-scipy 
+2

雖然這是一個答案,我會建議給一點細節。 – Zyerah 2013-04-20 23:05:20

+0

pip失敗後,此方法適用於我。 – philshem 2014-01-22 21:44:01

+0

3小時的頭痛,最後這工作。 – erosenin 2014-04-04 14:30:25

1

我有同樣的問題,因爲OP(上Red Hat Linux 5.7對我來說,是的,我知道這是舊的),所有被安裝ATLAS頭固定的(「靜態庫」,它說)通過:

yum install atlas-devel 
16

有同樣的問題。以下爲我工作:

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

請問你是怎麼知道這些軟件包解決了這個問題的?謝謝 – 2016-02-16 11:09:07

+0

谷歌博士,從內存中。 – 2016-02-17 00:13:25

0

對於Fedora 20:

pip install virtualenv virtualenvwrapper 
mkvirtualenv scipy_project 
sudo yum-buildep scipy 
pip install scipy 

我希望它能幫助!