1

我正在尝试通过 RPM 在具有 Python 2.4 的旧 Linux 机器上安装 numpy 1.7。numpy 发行说明和RPM页面说它应该与 2.4(或 <= 2.7)兼容,但是当我尝试使用命令在机器上安装它时

rpm -i /tmp/python-numpy-1.7.0-2.1.i586.rpm

我收到了许多缺失的依赖项说明,包括:

    libc.so.6(GLIBC_2.11) is needed by python-numpy-1.7.0-2.1.i586
    libc.so.6(GLIBC_2.4) is needed by python-numpy-1.7.0-2.1.i586
    liblapack.so.3 is needed by python-numpy-1.7.0-2.1.i586
    libpython2.7.so.1.0 is needed by python-numpy-1.7.0-2.1.i586
    python >= 2.7 is needed by python-numpy-1.7.0-2.1.i586
    python = 2.7 is needed by python-numpy-1.7.0-2.1.i586
    python(abi) = 2.7 is needed by python-numpy-1.7.0-2.1.i586
    rpmlib(PayloadIsLzma) <= 4.4.6-1 is needed by python-numpy-1.7.0-2.1.i586

所以现在至少需要 Python 2.7,而不是最高 2.7。这是真正的差异还是我错误地使用了 rpm?我习惯了更高级别的 Linux 包管理器,它们可以正确报告依赖关系并自动安装它们,所以我不确定如何在此处继续。

4

2 回答 2

1

您确定您的发行版还没有提供 numpy 吗?看起来numpyepel的一部分。

如果出于某种原因您不愿意在发行版中使用该版本,您可能不得不自己构建 RPM。我能够像这样在 CentOS 5.7 上构建 1.7.1:

sudo yum install rpm-build gcc python-devel
wget 'https://pypi.python.org/packages/source/n/numpy/numpy-1.7.1.tar.gz'
tar -xf numpy-1.7.1.tar.gz 
cd numpy-1.7.1/
python setup.py bdist_rpm
sudo yum localinstall dist/numpy-1.7.1-1.i386.rpm

生成的 RPM (in ./dist) 应该可以在具有相似硬件和操作系统的所有机器上使用而无需重建。

于 2013-05-03T19:09:43.423 回答
1

如果所有机器都有相同版本的 Python、glibc 等,那么获取numpy 源并自己构建它可能会更容易,假设您已经gcc(并且可能gfortran)安装了 BLAS 和 LAPACK 等依赖项。一旦它安装在一台机器上,您可以从(或任何目录)复制numpy文件夹(和任何文件)并将其分发到世界各地。确保在构建时创建静态库,这样您就不需要到处都需要所有依赖项。.egg/usr/lib/python2.4/site-packages

我也会得到 numpy 1.7.1,因为它修复了 1.7.0 的一些问题。

于 2013-05-03T18:38:10.087 回答