我以前使用python 2.7.9来使用swig(2.0.12版)包装一些c ++代码,并且一切工作正常。然后我切换到python 3.7.3,并像以前一样遇到了运行swig的问题。
这是我在终端中的错误消息:
ImportError: /home/_add_array.so: undefined symbol: PyClass_Type
我可以想象两种可能的解决方案:
我为了获得更多信息而生成的命令行命令需要更改。
我需要更新到较新版本的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。
谢谢!
答案 0 :(得分:1)
这部分肯定是错误的:
-I/usr/include/python2.7
您需要对其进行更新以指向新的Python 3.7安装。