Я задал этот вопросизначально на StackOverflow, но один пользователь предложил мне перенести его сюда, так что вот!
У меня есть учетная запись на удаленном компьютере без прав root, и мне нужно было установить локальную версию Python (на удаленном компьютере установлена версия Python, несовместимая с некоторыми моими кодами), Numpy и Scipy там. Я пытаюсь установить numpy локально со вчерашнего дня, но безуспешно.
Я успешно установил локальную версию Python (2.7.3) в /home/myusername/.local/, поэтому я получаю доступ к этой версии 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.