이 질문을 게시했습니다.원래 StackOverflow에 있었습니다., 그런데 한 사용자가 여기로 옮겼다고 제안했습니다. 그래서 여기로 갑니다!
루트 권한이 없는 원격 컴퓨터에 계정이 있고 로컬 버전의 Python(원격 컴퓨터에 내가 가지고 있는 일부 코드와 호환되지 않는 Python 버전이 있음), Numpy 및 Scipy를 설치해야 했습니다. 어제부터 로컬에서 numpy를 설치하려고 시도했지만 성공하지 못했습니다.
/home/myusername/.local/에 로컬 버전의 Python(2.7.3)을 성공적으로 설치했으므로 /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'을 입력했습니다. 즉, I did
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를 성공적으로 설치한 후 /를 수행했습니다. 그러나 똑같은 오류가 발생합니다.
웹에서 검색해 봤지만, 나와 비슷한 오류는 하나도 없는 것 같았습니다. 내 첫 번째 추측은 이것이 실행되기 위해 루트 권한이 필요한 일부 코드와 관련이 있거나 LAPACK 라이브러리 버전 또는 gcc(gcc 버전 4.1.2가 원격 컴퓨터에 설치됨)와 관련된 문제일 수 있다는 것입니다. .
도와줄 사람?
답변1
아니요, numpy를 컴파일할 때 루트 권한이 필요하지 않습니다. 나는 얼마 전에 루트가 전혀 없이 내 컴퓨터에서 이와 똑같은 작업을 수행했습니다. 나는 명령이 필요하다고 생각하지 않습니다 --prefix
. --user
대신 옵션 을 사용해 보세요 setup.py install --user
. 이 옵션은 수행하려는 작업을 자동으로 수행합니다.
이것이 도움이 되지 않으면 gcc 및 LAPACK 버전을 확인하겠습니다. 아마도 이를 업데이트할 수 없다면 이전 버전의 numpy를 사용해 볼 수도 있습니다.