4

我正在尝试通过 python使用网络http://www.metarecognition.com/libmr-license/上可用的库。作者提供了 C 代码和 swig 接口文件 (*.i)。用户提供的 Make 文件没有提供正确的 python 编译。所以我尝试手动编译swig。我在编译主库后使用以下命令。

swig -python weibull.i
gcc -c ../libMR/weibull.c weibull_wrap.c -I/usr/include/python2.4 -fPIC
ld -shared weibull.o weibull_wrap.o -o _weibull.so

这些步骤工作正常。但是当我尝试通过 python 导入它时,我收到以下错误:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "pyweibullw.py", line 29, in <module>
    _pyweibullw = swig_import_helper()
  File "pyweibullw.py", line 21, in swig_import_helper
    import _pyweibullw
ImportError: /usr/lib/python2.4/dist-packages/_pyweibullw.so: undefined symbol: Py_InitModule4

有人可以告诉我有什么问题吗?我是否遗漏了 gcc 的一些标志?我曾尝试使用带有 -m64、--arch x86_64 等标志的 gcc,但它似乎没有任何区别。仅供参考,我正在使用以下系统

bash-$:uname -a
Linux 2.6.32-5-amd64 #1 SMP Mon Oct 3 03:59:20 UTC 2011 x86_64 GNU/Linux
4

0 回答 0