ImportError:.so:未定义的符号:Py_InitModule4

时间:2014-07-22 20:21:22

标签: python c module

我正在尝试为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中做同样的事情完全正常。我搞砸了什么?

1 个答案:

答案 0 :(得分:0)

Python 3.x库与Python 2.x库没有完全相同的符号。在使用之前,请确保使用3.x重建模块。