python 和 swig 版本兼容性问题

Issue with python and swig version compatibility

我之前使用 python 2.7.9 使用 swig(版本 2.0.12)包装一些 c++ 代码并且一切正常。然后我切换到 python 3.7.3,并且像以前一样遇到 运行 swig 的问题。

这是我终端中的错误消息:

ImportError: /home/_add_array.so: undefined symbol: PyClass_Type

我可以想象两种可能的解决方案:

  1. 我正在执行的用于生成文件的命令行命令需要更改。

  2. 我需要更新到更新版本的 swig。

如果是情况1,那我之前的命令不正确呢:

swig -c++ -python add_array.i
g++ -fpic -c add_array_wrap.cxx add_array.h add_array.cpp -I/usr/include/python2.7
g++ -shared add_array_wrap.o add_array.o -o _add_array.so

如果是情况2,什么版本的swig与python3.7.3兼容? 我是 运行 Ubuntu,以防相关。

谢谢!

这部分肯定是错的:

-I/usr/include/python2.7

您需要更新它以指向新的 Python 3.7 安装。