модуль, скомпилированный с помощью swig, не найден python - PullRequest
2 голосов
/ 02 мая 2010

У меня проблема с SWIG и python. У меня есть c-класс, который правильно компилируется, но скрипт 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 голосов
/ 03 мая 2010

, если вы выполняете эти команды из одного места (каталога), _codes.so заканчивается. и коды.py заканчиваются на ./codes/, я думаю.

0 голосов
/ 13 января 2011

Переименуйте ваш _codes.so в _codes.pyd, если это сборка релиза. Переименуйте в _codes_d.pyd для отладочных сборок.

НТН

0 голосов
/ 02 мая 2010

В прошлый раз, когда я использовал SWIG, он генерировал два файла. В вашем случае это должны быть code.py и _codes.so

Вы должны проверить, почему код code.py отсутствует.

...