我的问题如下。我正在处理Ubuntu
并拥有cython
代码,我使用以下代码编译:
from distutils.core import setup
from Cython.Build import cythonize
import numpy
setup(
ext_modules = cythonize("cython_accelerate.pyx"),
include_dirs = [numpy.get_include()]
)
编译工作正常。当我尝试导入生成的库(cython_accelerate.so)时,我收到以下错误:
无效的ELF标头。
如果我在Mac上执行完全相同的过程,一切都很完美:唯一的区别是库是使用不同的名称生成的(cython_accelerate.cpython-35m-darwin.so),但导入按预期工作而没有问题。
我做错了什么?
答案 0 :(得分:1)
我正在使用Ubuntu
这是一个毫无意义的陈述。可能你在x86_64
系统上使用Ubuntu。
如果是这样,你的问题很可能是由于32位与64位不匹配造成的:你试图将32位cython_accelerate.so
导入到64位Python进程中,反之亦然。
要验证这是原因,请运行
file `which python`
file /path/to/cython_accelerate.so