我无法在Windows上重现基本的SWIG示例.我的错误在SWIG文档中说明,我确信我会提到他们提到的2个修复程序.对于此错误:
>>> import example
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "example.py", line 2, in ?
import _example
ImportError: No module named _example
Run Code Online (Sandbox Code Playgroud)
SWIG文件明确指出:
忘记前导下划线(_).
忘记前导下划线(_).>如果你收到这条消息,就意味着
您忘记将包装器代码编译到扩展模块中,或者您没有为扩展模块提供正确的名称.确保将包装器编译为名为example.so的模块.并且不要忘记前导下划线().忘记前导下划线(_).
我确信我链接了最新的包装对象构建,我试过:"_ example","_ example.so","example.dll","example.so","example.dll",甚至一次性,并且生成的"example.py"与共享库位于同一文件夹中,并且python路径包含此目录,并保留前导下划线().
这个例子:
//example.h
int foo_sum(int a, int b);
Run Code Online (Sandbox Code Playgroud)
.
//example.cpp
int foo_sum(int a, int b) {
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
.
//example.i
%module example
%{
#include "example.h"
%}
#include "example.h
Run Code Online (Sandbox Code Playgroud)
和构建命令:
gcc -IV:\temp\example\external\include\Python -O3 -Wall -c -fmessage-length=0 -oexample_wrap.o ..\example_wrap.c …Run Code Online (Sandbox Code Playgroud)