2013-05-03 91 views
1

我試圖在Python 2.4的舊版Linux機器上通過RPM安裝numpy 1.7。該numpy release notesthe RPM page說,這應該是兼容2.4(或< = 2.7),但是當我嘗試用命令使用較舊的Python版本安裝numpy RPM

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

是否有你不想升級到Python 2.7的原因? – MattDMo 2013-05-03 16:59:18

+0

不幸的是,這臺機器是我工作和運行Python 2.4的世界上很多人中的一員,我幾乎沒有能力升級它們。 (我正在研究將numpy放到它們上面是否可行,但是這是否比升級Python更容易?) – dpitch40 2013-05-03 17:11:26

+0

NumPy發行說明適用於源版本。 RPM descr頁面沒有提到任何有關舊Python版本的信息。 (請注意,PSF已經放棄了對Python 2.4的支持,所以它甚至沒有得到安全修復。) – 2013-05-03 19:16:16

回答

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(在./dist)應該是可用的,無需重建上都具有類似的硬件和操作系統的機器。

+0

我嘗試了所有這些,最終安裝的rpm錯誤「Package numpy-1.7.1-1.i386.rpm未簽名」失敗。 – dpitch40 2013-05-06 14:15:21

+0

然後你需要將'--nogpgcheck'傳遞給yum;這將暫時禁用軟件包簽名要求。 – SingleNegationElimination 2013-05-06 16:32:32

+0

我通過編輯/etc/yum.conf文件得到它的工作;我認爲這些機器的版本早於該選項。我有什麼理由不能使用'rpm'命令來安裝它嗎?(我剛剛嘗試過,它似乎沒有簽署麻煩) – dpitch40 2013-05-06 20:11:40

1

如果所有的機器了Python,glibc的,等的相同版本,那麼它可能會更容易得到numpy source和建立它自己,安裝假設你有gcc(也許gfortran),與像BLAS依賴沿和LAPACK。一旦它安裝在一臺機器上,您可以從/usr/lib/python2.4/site-packages(或任何目錄)複製numpy文件夾(和任何.egg文件)並將其分發到世界各地。確保在構建時創建靜態庫,這樣就不需要遍佈各處的所有依賴關係。

我也會得到numpy 1.7.1,因爲它修復了1.7.0的一些問題。

+0

我在一臺機器上使用其他答案中給出的RPM方法構建它。我應該在哪裏找到這些.egg文件? – dpitch40 2013-05-06 19:50:14

+0

它們應該在您生成的RPM中。一旦你安裝了RPM,檢查'/ usr/lib/python2.4/site-packages'目錄,你應該找到一個'numpy /'子目錄,以及一個名爲'numpy-1.7.1-py2的文件。 4.egg-info'。如果它不在那裏,不要擔心,你的Python版本可能不支持egg。基本上,它只是關於軟件包的元數據,與您在[PyPI]上找到的非常相似(https://pypi.python.org/pypi/numpy) – MattDMo 2013-05-07 00:37:14

相關問題