Прежде всего, просматривая комментарии, я вижу, что переименование не сработало.Это означает, что (1) python не может найти файл .so, (2) файл .so не может быть использован (т.е. не скомпилирован правильно или не все необходимые символы найдены), или (3) существует .py /Файл .pyc / .pyo в том же каталоге, который уже имеет это имя.Если вы уже определили Blarg.py, python сначала будет смотреть на этот файл.То же самое происходит, если у вас есть каталог с именем Blarg в вашем пути поиска.Поэтому вместо того, чтобы прислонить голову к стене, попробуйте следующее:
1) Переименуйте вашу библиотеку .so во что-нибудь гарантированно не конфликтующее (например, _Blarg)
void initBlarg() {
Py_InitModule("_Blarg", Blargmethods);
}
2) Скомпилируйте ееЖЕ ИМЯ
gcc -I/usr/include/python2.6 -fPIC -c blargUtils.c -Wall
gcc -shared blargUtils.o -Wl,-soname -Wl,_Blarg.so -o _Blarg.so
3) Создайте оболочку Python (например, Blarg.py)
import sys
sys.path.append('/path/to/your/library')
import _Blarg
def blargFunc1(*args):
"""Wrap blargFunc1"""
return _Blarg.blargFunc1(*args)
4) Теперь просто используйте его как обычно
import Blarg
Blarg.blargFunc1(1, 2, 3)
Очевидно, это немного излишне, но это должно помочь вам определить, где проблема.Надеюсь, это поможет.