我正在尝试为python编写一个C扩展模块,并且遇到了标题中的错误。该模块在Python 2.7.6下工作,但是当我尝试在Python 3.4.0下运行它时会产生错误。
我运行python setup.py build_ext --inplace
来编译代码。这就是我setup.py
的样子:
from distutils.core import setup, Extension
setup(
ext_modules=[Extension("_file", ["_file.c", "file.c"])],
)
我运行Python3解释器并输入import _file
,这就是:
>>>import _file
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: /home/name/python/file/_file.so: undefined symbol: Py_InitModule4
正如我上面所说,在Python 2.7.6中做同样的事情完全正常。我搞砸了什么?
答案 0 :(得分:0)
Python 3.x库与Python 2.x库没有完全相同的符号。在使用之前,请确保使用3.x重建模块。