Tutorial :module compiled with swig not found by python



Question:

I've a problem with SWIG and python. I've a c-class that compiles correctly, but the python script says it can't find the module.

I compile with:

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  

This gives me a _codes.so file, as I would expect, but then I have this python file:

import sys  import codes    (rest of the code omitted)  

It gives me:

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

According to http://www.swig.org/Doc1.3/Introduction.html#Introduction_nn8 this is all I should have to do... The files are in the same directory, so the path should not be a problem ?


Solution:1

Last time I used SWIG, it generated two files. In your case it should be codes.py and _codes.so

You should check why codes.py is not present.


Solution:2

if you are executing these commands from the same place (directory) _codes.so ends up in . and codes.py ends up in ./codes/ , I think.


Solution:3

Rename your _codes.so to _codes.pyd if its a release build. Rename to _codes_d.pyd for debug builds.

HTH


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »