2012-09-25 122 views
11

当我尝试使用PIP安装SciPy的失败与以下回溯SciPy的安装在山狮失败

Downloading/unpacking scipy 
    Downloading scipy-0.10.1.tar.gz (6.2MB): 6.2MB downloaded 
    Running setup.py egg_info for package scipy 
    Running from scipy source directory. 
    blas_opt_info: 
     FOUND: 
     extra_link_args = ['-Wl,-framework', '-Wl,Accelerate'] 
     define_macros = [('NO_ATLAS_INFO', 3)] 
     extra_compile_args = ['-msse3', '-I/System/Library/Frameworks/vecLib.framework/Headers'] 

    non-existing path in '/private/var/folders/rd/fplkflh93ls54kbl5ylphl4h0000gn/T/pip-build/scipy/scipy/io': 'docs' 
    lapack_opt_info: 
     FOUND: 
     extra_link_args = ['-Wl,-framework', '-Wl,Accelerate'] 
     define_macros = [('NO_ATLAS_INFO', 3)] 
     extra_compile_args = ['-msse3'] 

    umfpack_info: 
     libraries umfpack not found in /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib 
     libraries umfpack not found in /usr/local/lib 
     libraries umfpack not found in /usr/lib 
    /usr/local/lib/python2.7/site-packages/numpy/distutils/system_info.py:470: UserWarning: 
     UMFPACK sparse solver (http://www.cise.ufl.edu/research/sparse/umfpack/) 
     not found. Directories to search for the libraries can be specified in the 
     numpy/distutils/site.cfg file (section [umfpack]) or by setting 
     the UMFPACK environment variable. 
     warnings.warn(self.notfounderror.__doc__) 
     NOT AVAILABLE 

    Traceback (most recent call last): 
     File "<string>", line 16, in <module> 
     File "/var/folders/rd/fplkflh93ls54kbl5ylphl4h0000gn/T/pip-build/scipy/setup.py", line 196, in <module> 
     setup_package() 
     File "/var/folders/rd/fplkflh93ls54kbl5ylphl4h0000gn/T/pip-build/scipy/setup.py", line 187, in setup_package 
     configuration=configuration) 
     File "/usr/local/lib/python2.7/site-packages/numpy/distutils/core.py", line 152, in setup 
     config = configuration() 
     File "/var/folders/rd/fplkflh93ls54kbl5ylphl4h0000gn/T/pip-build/scipy/setup.py", line 138, in configuration 
     config.add_subpackage('scipy') 
     File "/usr/local/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 1002, in add_subpackage 
     caller_level = 2) 
     File "/usr/local/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 971, in get_subpackage 
     caller_level = caller_level + 1) 
     File "/usr/local/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 908, in _get_configuration_from_setup_py 
     config = setup_module.configuration(*args) 
     File "scipy/setup.py", line 20, in configuration 
     config.add_subpackage('special') 
     File "/usr/local/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 1002, in add_subpackage 
     caller_level = 2) 
     File "/usr/local/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 971, in get_subpackage 
     caller_level = caller_level + 1) 
     File "/usr/local/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 908, in _get_configuration_from_setup_py 
     config = setup_module.configuration(*args) 
     File "/private/var/folders/rd/fplkflh93ls54kbl5ylphl4h0000gn/T/pip-build/scipy/scipy/special/setup.py", line 54, in configuration 
     extra_info=get_info("npymath") 
     File "/usr/local/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 2220, in get_info 
     pkg_info = get_pkg_info(pkgname, dirs) 
     File "/usr/local/lib/python2.7/site-packages/numpy/distutils/misc_util.py", line 2172, in get_pkg_info 
     return read_config(pkgname, dirs) 
     File "/usr/local/lib/python2.7/site-packages/numpy/distutils/npy_pkg_config.py", line 390, in read_config 
     v = _read_config_imp(pkg_to_filename(pkgname), dirs) 
     File "/usr/local/lib/python2.7/site-packages/numpy/distutils/npy_pkg_config.py", line 326, in _read_config_imp 
     meta, vars, sections, reqs = _read_config(filenames) 
     File "/usr/local/lib/python2.7/site-packages/numpy/distutils/npy_pkg_config.py", line 309, in _read_config 
     meta, vars, sections, reqs = parse_config(f, dirs) 
     File "/usr/local/lib/python2.7/site-packages/numpy/distutils/npy_pkg_config.py", line 281, in parse_config 
     raise PkgNotFound("Could not find file(s) %s" % str(filenames)) 
    numpy.distutils.npy_pkg_config.PkgNotFound: Could not find file(s) ['/usr/local/lib/python2.7/site-packages/numpy/core/lib/npy-pkg-config/npymath.ini'] 

我使用的是山狮安装SciPy的,和Python 2.7.3我安装使用自制软件,并使用pip install numpy安装numpy。

为什么scipy安装失败?

回答

9

这似乎是pip和numpy的问题,它不会将编译的库复制到site-packages目录中。

你可以安装使用PIP成的virtualenv(这为我工作) 或 使用

python setup.py install 

方法从源代码安装。

这里大约有问题的一些意见:

http://www.thisisthegreenroom.com/2011/installing-python-numpy-scipy-matplotlib-and-ipython-on-lion/

+5

这个问题不仅限于OSX:我有同样的问题与PIP 1.2.1在Ubuntu中的virtualenv 1.8.2运行。 'pip安装numpy'似乎可以正常工作,但是'pip install scipy'会失败,就像上面那样。解决方案是下载numpy源代码并使用'python setup.py install --prefix =/path/to/my/virtual/environment'手动安装它们。之后,'pip install scipy'工作。 –

+6

只是一个更新,这里是目前在Mountain Lion上的非virtualenv方式'mkdir -p build && cd build'然后'git clone https:// github.com/numpy/numpy.git'然后'python setup.py build '然后是'python setup.py install'然后'pip install scipy',因为在pip下只有numpy被破坏,而不是scipy。 –

4

如果你不使用virtualenv,那么可以手动编辑最少侵入修补程序/usr/local/lib/python2.7/site-packages/pip-1.2.1-py2.7.egg/pip/locations.py(您的pip版本可能会有所不同)。

build_prefix = os.path.join(tempfile.gettempdir(), 'pip-build') 

到:刚刚从更换线35

build_prefix = os.path.realpath(os.path.join(tempfile.gettempdir(), 'pip-build')) 

此更改后,您需要重新安装numpypip uninstall numpy; pip install numpy)。 scipy然后可以通过点正确安装。

该问题是由点缺陷造成的。并且上面的解决方案是根据github用户qwcode的the pip patch(在Lokkju提到的the issue discussion中建议的)。这个补丁似乎已经合并到主要的点存储库。然而,我并没有看到一种简单的方法来酝酿更新点子,因为它与Python捆绑在一起。所以只需手动使这个简单的修复工作适合我。

+0

我只想补充说,如果您在本地安装scipy,则此解决方案是必需的,因为pip 1.3.1+需要SSL认证,并且pip 1.2.1不*具有此build_prefix更改。 – Guillochon

0

我在2015年与MacOSX Yosemite有同样的问题。我认为这是由pip的旧版本bug引起的。卸载pip并获取它的最新版本有所帮助。 从https://pip.pypa.io/en/latest/installing.html 获得点子,然后

$ sudo pip uninstall scipy 
$ sudo pip install scipy