使用python找不到的swig编译的模块

时间:2010-05-01 20:24:53

标签: c++ python module swig

我遇到了SWIG和python的问题。我有一个正确编译的c-class,但是python脚本说它无法找到模块。

我编译:

swig -c++ -python codes/codes.i
g++ -c -Wall -O4 -fPIC -pedantic codes/*.cc
g++ -I/usr/include/python2.6 -shared codes/codes_wrap.cxx *.o -o _codes.so

这给了我一个_codes.so文件,正如我所料,但后来我有了这个python文件:

import sys
import codes

(rest of the code omitted)

它给了我:

 Traceback (most recent call last):
   File "script.py", line 3, in <module>
    import codes
ImportError: No module named codes

根据http://www.swig.org/Doc1.3/Introduction.html#Introduction_nn8,这是我应该做的全部...... 这些文件位于同一目录中,因此该路径应该不是问题吗?

3 个答案:

答案 0 :(得分:0)

上次我使用SWIG时,它生成了两个文件。在你的情况下,它应该是codes.py和_codes.so

您应该检查为什么codes.py不存在。

答案 1 :(得分:0)

如果从同一个地方(目录)执行这些命令,_codes.so最终会进入。和codes.py以./codes/结尾,我想。

答案 2 :(得分:0)

如果_codes.so是发布版本,则将其重命名为_codes.pyd。重命名为_codes_d.pyd以进行调试构建。

HTH