我發布了這個問題最初在 StackOverflow 上,但一位用戶建議我將其移至此處,所以我就開始吧!
我在遠端電腦上有一個沒有root權限的帳戶,我需要安裝本機版本的Python(遠端電腦的Python版本與我的某些程式碼不相容)、Numpy和Scipy。從昨天開始我一直在嘗試在本地安裝 numpy,但沒有成功。
我在 /home/myusername/.local/ 中成功安裝了本機版本的 Python (2.7.3),因此我透過執行 來存取此版本的 Python /home/myusername/.local/bin/python
。我嘗試了兩種安裝 Numpy 的方法:
我從官方網頁下載了最新穩定版本的 Numpy,將其解壓縮,進入解壓縮後的資料夾並執行以下操作:
/home/myusername/.local/bin/python setup.py install --prefix=/home/myusername/.local
。但是,我收到以下錯誤,隨後出現一系列其他錯誤(源自此錯誤):gcc -pthread -shared build/temp.linux-x86_64-2.7/numpy/core/blasdot/_dotblas.o -L/usr/local/lib -Lbuild/temp.linux-x86_64-2.7 -lptf77blas -lptcblas -latlas -o build/lib.linux-x86_64-2.7/numpy/core/_dotblas.so /usr/bin/ld: /usr/local/lib/libptcblas.a(cblas_dptgemm.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
不太清楚這意味著什麼(除了錯誤顯然與 LAPACK 庫有關),我只是執行了與上面相同的命令,但現在輸入 LDFLAGS='-fPIC',如錯誤所示,即,我做了
LDFLAGS="-fPIC" /home/myusername/.local/bin/python setup.py install --prefix=/home/myusername/.local
。但是,我得到了相同的錯誤(除了在上面的 gcc 命令之後添加了前綴 -fPIC 之外)。我嘗試使用 pip 安裝它,即
/home/myusername/.local/bin/pip install numpy
在我的本地路徑中成功安裝 pip 後執行 /)。但是,我得到了完全相同的錯誤。
我在網上搜索了一下,但似乎沒有一個錯誤與我的類似。我的第一個猜測是,這與某些需要 root 權限才能執行的程式碼有關,或者可能與 LAPACK 庫或 gcc 的版本有問題(遠端電腦上安裝了 gcc 版本 4.1.2) 。
幫忙,有人嗎?
答案1
不,編譯 numpy 時不需要 root 權限。不久前,我剛剛在沒有 root 的情況下在我的電腦上做了同樣的事情。我不認為有任何--prefix
命令的必要。嘗試使用該--user
選項代替setup.py install --user
.此選項會自動執行您想要執行的操作。
如果這沒有幫助,我會檢查你的 gcc 和 LAPACK 版本。也許如果您無法更新這些,那麼您可能想嘗試舊版本的 numpy。