我正在尝试使用Python 2.4在较旧的Linux机器上通过RPM安装numpy 1.7。 numpy release notes和the RPM page表示它应该与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包管理器并自动安装它们,所以我不确定如何继续这里。
答案 0 :(得分:1)
如果所有机器都有相同版本的Python,glibc等,那么假设你有gcc
(也许是{{gfortran
,那么获取numpy source并自己构建它可能会更容易1}})安装,以及BLAS和LAPACK等依赖项。一旦将其安装在一台计算机上,您就可以从numpy
(或任何目录)复制.egg
文件夹(以及任何/usr/lib/python2.4/site-packages
文件),并将其分发到全球各地。确保在构建时创建静态库,这样就不需要所有依赖项。
我还得到numpy 1.7.1,因为它修复了1.7.0的一些问题。
答案 1 :(得分:1)
你确定你的发行版已经没有提供numpy了吗?看起来numpy是epel的一部分。
如果由于某种原因您不愿意在发行版中使用该版本,您可能需要自己构建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(在./dist
中)应该是可用的,无需在具有类似硬件和操作系统的所有机器上重建。