【发布时间】:2011-03-16 20:09:11
【问题描述】:
我已经像这样在我的 c 文件 blargUtils.c 中定义了我的包装对象的名称(我已经在 Blargmethods 中定义了方法和很多)...
void initBlarg(){
Py_InitModule("Blarg", Blargmethods);
}
我是这样编译的……
blarglib: blargUtils.c
gcc -I/usr/include/python2.6 -fPIC -c blargUtils.c -Wall
gcc -shared blargUtils.o -o blargUtils.so
clean:
rm *.so
但是,当我尝试在我的 python 脚本中导入包装器时...
import Blarg
上面写着:“ImportError:没有名为 Blarg 的模块”。我在这里有点迷路,我不明白为什么当它们的拼写完全相同时它找不到课程。可能是逻辑错误?
如果需要更多代码,请告诉我。
【问题讨论】:
-
我忘了提到编译的 .os 文件是否有帮助
-
你把编译好的.so文件放在哪里了? (什么目录?)你想从哪里导入它?与任何其他 Python 模块一样,用 C 编译的模块需要位于 Python 路径上才能找到。
-
您将 .so 文件放在哪里?如果将其重命名为 Blarg.so 会发生什么?
-
都在同一个目录.os、.c、.py和makefile
-
在我的 cmets 中我很愚蠢,我的意思是 .so 而不是 .os 和 DNS,当您更改名称时没有任何反应。并再次运行 python。我遇到了同样的问题。