eu postei essa perguntaoriginalmente no StackOverflow, mas um usuário sugeriu que eu o mudasse para cá, então aqui vou eu!
Tenho uma conta em um computador remoto sem permissões de root e precisei instalar uma versão local do Python (o computador remoto tem uma versão do Python que é incompatível com alguns códigos que possuo), Numpy e Scipy lá. Estou tentando instalar o numpy localmente desde ontem, sem sucesso.
Instalei com sucesso uma versão local do Python (2.7.3) em /home/myusername/.local/, então acesso esta versão do Python fazendo /home/myusername/.local/bin/python
. Tentei duas maneiras de instalar o Numpy:
Baixei a última versão estável do Numpy da página oficial, descompactei, entrei na pasta descompactada e fiz:
/home/myusername/.local/bin/python setup.py install --prefix=/home/myusername/.local
. No entanto, recebo o seguinte erro, seguido por uma série de outros erros (derivados deste):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
Sem saber bem o que isso significava (exceto que o erro aparentemente tem a ver com a biblioteca LAPACK), apenas fiz o mesmo comando acima, mas agora colocando LDFLAGS='-fPIC', como sugerido pelo erro ou seja, fiz
LDFLAGS="-fPIC" /home/myusername/.local/bin/python setup.py install --prefix=/home/myusername/.local
. No entanto, recebi o mesmo erro (exceto que o prefixo -fPIC foi adicionado após o comando gcc acima).Tentei instalá-lo usando pip, ou seja, fazendo
/home/myusername/.local/bin/pip install numpy
/depois de instalar o pip com sucesso no meu caminho local). No entanto, recebo exatamente o mesmo erro.
Pesquisei na web, mas nenhum dos erros parecia ser semelhante ao meu. Meu primeiro palpite é que isso tem a ver com algum trecho de código que precisa de permissões de root para ser executado, ou talvez com algum problema com a versão das bibliotecas LAPACK ou com o gcc (a versão 4.1.2 do gcc está instalada no computador remoto) .
Ajuda, alguém?
Responder1
Não, não há necessidade de privilégios de root ao compilar numpy. Acabei de fazer a mesma coisa no meu computador há pouco tempo, sem nenhum root. Não acredito que haja necessidade do --prefix
comando. Tente usar a --user
opção com setup.py install --user
. Esta opção faz automaticamente o que você está tentando fazer.
Se isso não ajudar, eu verificaria sua versão do gcc e do LAPACK. Talvez, se você não conseguir atualizá-los, tente uma versão mais antiga do numpy.