Tentando usar Pandas em Python - Erro: classe ELF errada: ELFCLASS32

1

Eu instalei a versão mais recente do Pandas usando o seguinte:

sudo apt-get install python-pandas

mas continuo recebendo a seguinte mensagem de erro quando tento importar para o Python:

ImportError: /usr/local/lib/python2.7/dist-packages/pandas-0.7.3-py2.7-linux-i686.egg/pandas/_tseries.so: wrong ELF class: ELFCLASS32

Alguma sugestão sobre como corrigir isso? Eu preciso reinstalar alguma coisa? Se sim, como faço isso? Eu tentei descobrir como desinstalar o Pandas, mas não consigo encontrá-lo.

    
por andrewrmunro 16.06.2014 / 05:58

1 resposta

0

Alguns dos códigos-fonte do Pandas são escritos em Cython. Os arquivos pyx do Cython são transformados em arquivos .c e compilados em bibliotecas .so. O erro que você está vendo,

ImportError: /usr/local/lib/python2.7/dist-packages/pandas-0.7.3-py2.7-linux-i686.egg/pandas/_tseries.so: wrong ELF class: ELFCLASS32

diz que _tseries.so foi compilado como um binário ELF de 32 bits, enquanto seu sistema (provavelmente) precisa de um binário ELF de 64 bits.

A maneira correta de corrigir isso depende de como você chegou a essa situação. Por exemplo, se você tiver o código-fonte do pandas completo em ~ / src / pandas, então

cd ~/src/pandas/pandas
/bin/rm *.{c,cpp,so}   # <-- remove the 32-bit binaries
/bin/rm -rf ~/src/pandas/{build,dist}
cd /usr/local/lib/python2.7/dist-packages/
/bin/rm -rf pandas*    # <-- remove the egg file
cd ~/src/pandas
python setup.py build_ext --inplace && python setup.py install   # <-- will build 64-bit binaries on a 64-bit system.

recompilará o código do cython e tentará instalar os pandas.

    
por unutbu 25.10.2014 / 22:27