python和swig版本兼容性问题

时间:2019-10-13 04:21:58

标签: python c++ swig

我以前使用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。

如果是第一种情况,那么我以前的命令不正确:

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与python 3.7.3兼容? 如果相关,我正在运行Ubuntu。

谢谢!

1 个答案:

答案 0 :(得分:1)

这部分肯定是错误的:

-I/usr/include/python2.7

您需要对其进行更新以指向新的Python 3.7安装。