在redhat升级scipy

时间:2016-08-20 08:25:35

标签: python scipy pip

我尝试使用pip升级到Redhat 6.7上的scipy到本地文件夹:

pip install --user --upgrade scipy

但是,弹出以下错误:

You are using pip version 7.1.0, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting scipy
Using cached scipy-0.18.0.tar.gz
Installing collected packages: scipy
Running setup.py install for scipy
Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-i0GYOd/scipy/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-aq6BzP-record/install-record.txt --single-version-externally-managed --compile --user --prefix=:

Note: if you need reliable uninstall behavior, then install
with pip instead of using `setup.py install`:

- `pip install .`       (from a git repo or downloaded source
                        release)
- `pip install scipy`   (last SciPy release on PyPI)


lapack_opt_info:
lapack_mkl_info:
mkl_info:
libraries mkl,vml,guide not found in /usr/local/lib64
libraries mkl,vml,guide not found in /usr/local/lib
libraries mkl,vml,guide not found in /usr/lib64
libraries mkl,vml,guide not found in /usr/lib
NOT AVAILABLE

NOT AVAILABLE

atlas_threads_info:
Setting PTATLAS=ATLAS
libraries ptf77blas,ptcblas,atlas not found in /usr/local/lib64
libraries lapack_atlas not found in /usr/local/lib64
libraries ptf77blas,ptcblas,atlas not found in /usr/local/lib
libraries lapack_atlas not found in /usr/local/lib
libraries lapack_atlas not found in /usr/lib64/atlas
numpy.distutils.system_info.atlas_threads_info
Setting PTATLAS=ATLAS
Setting PTATLAS=ATLAS
FOUND:
    libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']
    library_dirs = ['/usr/lib64/atlas']
    language = f77
    include_dirs = ['/usr/include']

/usr/lib64/python2.6/site-packages/numpy/distutils/command/config.py:394: DeprecationWarning:
+++++++++++++++++++++++++++++++++++++++++++++++++
Usage of get_output is deprecated: please do not
use it anymore, and avoid configuration checks
involving running executable on the target machine.
+++++++++++++++++++++++++++++++++++++++++++++++++

DeprecationWarning)
customize GnuFCompiler
Found executable /usr/bin/g77
gnu: no Fortran 90 compiler found
gnu: no Fortran 90 compiler found
customize GnuFCompiler
gnu: no Fortran 90 compiler found
gnu: no Fortran 90 compiler found
customize GnuFCompiler using config
compiling '_configtest.c':

/* This file is generated from numpy/distutils/system_info.py */
void ATL_buildinfo(void);
int main(void) {
ATL_buildinfo();
return 0;
}
C compiler: gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC

compile options: '-c'
gcc: _configtest.c
gcc -pthread _configtest.o -L/usr/lib64/atlas -llapack -lptf77blas -lptcblas -latlas -o _configtest
ATLAS version 3.8.4 built by mockbuild on Thu Feb  9 08:22:21 EST 2012:
UNAME   : Linux x86-010.build.bos.redhat.com 2.6.18-274.17.1.el5 #1 SMP Wed Jan 4 22:45:44 EST 2012 x86_64 x86_64 x86_64 GNU/Linux
INSTFLG  : -1 0 -a 1
ARCHDEFS : -DATL_OS_Linux -DATL_ARCH_P4E -DATL_CPUMHZ=3600 -DATL_SSE2 -DATL_SSE1 -DATL_USE64BITS -DATL_GAS_x8664
F2CDEFS  : -DAdd_ -DF77_INTEGER=int -DStringSunStyle
CACHEEDGE: 524288
F77     : gfortran, version GNU Fortran (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
F77FLAGS : -fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4 -g -Wa,--noexecstack -fPIC -m64
SMC     : gcc, version gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
SMCFLAGS : -fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4 -g -Wa,--noexecstack -fPIC -m64
SKC     : gcc, version gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
SKCFLAGS : -fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4 -g -Wa,--noexecstack -fPIC -m64
success!
removing: _configtest.c _configtest.o _configtest
FOUND:
    libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']
    library_dirs = ['/usr/lib64/atlas']
    language = f77
    define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')]
    include_dirs = ['/usr/include']

Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-i0GYOd/scipy/setup.py", line 415, in <module>
    setup_package()
File "/tmp/pip-build-i0GYOd/scipy/setup.py", line 411, in setup_package
    setup(**metadata)
File "/usr/lib64/python2.6/site-packages/numpy/distutils/core.py", line 152, in setup
    config = configuration()
File "/tmp/pip-build-i0GYOd/scipy/setup.py", line 335, in configuration
    config.add_subpackage('scipy')
File "/usr/lib64/python2.6/site-packages/numpy/distutils/misc_util.py", line 957, in add_subpackage
    caller_level = 2)
File "/usr/lib64/python2.6/site-packages/numpy/distutils/misc_util.py", line 926, in get_subpackage
    caller_level = caller_level + 1)
File "/usr/lib64/python2.6/site-packages/numpy/distutils/misc_util.py", line 863, in _get_configuration_from_setup_py
    config = setup_module.configuration(*args)
File "scipy/setup.py", line 9, in configuration
    config.add_subpackage('cluster')
File "/usr/lib64/python2.6/site-packages/numpy/distutils/misc_util.py", line 957, in add_subpackage
    caller_level = 2)
File "/usr/lib64/python2.6/site-packages/numpy/distutils/misc_util.py", line 926, in get_subpackage
    caller_level = caller_level + 1)
File "/usr/lib64/python2.6/site-packages/numpy/distutils/misc_util.py", line 863, in _get_configuration_from_setup_py
    config = setup_module.configuration(*args)
File "scipy/cluster/setup.py", line 24, in configuration
    extra_info=blas_opt)
File "/usr/lib64/python2.6/site-packages/numpy/distutils/misc_util.py", line 1419, in add_extension
    ext = Extension(**ext_args)
File "/usr/lib64/python2.6/site-packages/numpy/distutils/extension.py", line 45, in __init__
    export_symbols)
TypeError: __init__() takes at most 4 arguments (13 given)

----------------------------------------
Command "/usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-i0GYOd/scipy/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-aq6BzP-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-build-i0GYOd/scipy

似乎numpy已过时,当我尝试升级numpy时,会出现类似的错误消息。我应该如何在本地文件夹中安装numpy和scipy?

1 个答案:

答案 0 :(得分:0)

RedHat 6.7附带Python 2.6,最新版本的numpy / scipy不再支持它。除此之外,在Linux上,您不应该使用{{1}将从包管理器(使用yumdnfapt-get等)安装的软件包与从PyPI安装的软件包混合使用。 }。 由于大多数Linux发行版依赖于为各种程序安装一个可用的Python,pip安装很容易破坏,即使这样做是在非全局目录中完成的。

而是始终使用virtualenv并安装您需要的软件包。您可以在软件包管理器中安装pip,如果需要,可以为virtualenv创建virtualenv,并在那里升级virtualenvpip以消除pip的消息已经过时,并获得最新的virtualenv。

这可能看起来有点过头了,但是值得防止你的公用事业破坏。此外,通过这种方式工作可以很容易地使用比系统提供的更新的python。假设您在virtualenv中安装了2.7系列中的最新版本,只需在创建初始virtualenv时向系统/opt/python/2.7提供-p /opt/python/2.7/bin/python(使用包管理器中的virtualenv)。