尝试在 Python 中使用 Pandas - 错误:错误的 ELF 类:ELFCLASS32

尝试在 Python 中使用 Pandas - 错误:错误的 ELF 类:ELFCLASS32

我已经使用以下命令安装了最新版本的 Pandas:

sudo apt-get install python-pandas

但是当我尝试导入 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

关于如何解决这个问题有什么建议吗?我需要重新安装某些东西吗?如果需要,我该怎么做?我试图找到如何卸载 Pandas,但找不到。

答案1

部分 Pandas 源代码是用 Cython 编写的。Cython pyx 文件被转换为 .c 文件并在 .so 库中编译。您看到的错误是

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

表示它_tseries.so被编译为 ELF 32 位二进制文​​件,而您的系统(可能)需要 ELF 64 位二进制文​​件。

解决此问题的正确方法取决于您如何遇到这种情况。例如,如果您在 ~/src/pandas 中有完整的 pandas 源代码,那么

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.

将重新编译 cython 代码,然后尝试安装 pandas。

相关内容