python – SWIG:AttributeError:’module’对象没有属性’fact’

python – SWIG:AttributeError:’module’对象没有属性’fact’,第1张

概述我正在研究如何使用swig为我的 python代码进行C扩展.我使用我从网站获得的代码作为示例. 这是我的代码: example.c #include <time.h> double My_variable = 3.0; int fact(int n) { if (n <= 1) return 1; else return n*fact(n-1); } int my 我正在研究如何使用swig为我的 python代码进行C扩展.我使用我从网站获得的代码作为示例.
这是我的代码:

example.c

#include <time.h> double My_variable = 3.0; int fact(int n) {     if (n <= 1) return 1;     else return n*fact(n-1); } int my_mod(int x,int y) {     return (x%y); }

example.h文件

#ifndef EXAMPLE_H_#define EXAMPLE_H_ extern double My_variable; extern int fact(int n); extern int my_mod(int x,int y);#endif

example.i

%module example %{ /* Put header files here or function declarations like below */#define SWIG_file_WITH_INIT    #include "example.h" %}%#include "example.h"

Makefile文件

all:    rm -f *.so *.o *_wrap.* *.pyc    swig -python example.i    gcc -c -fPIC example_wrap.c -I/usr/include/python2.7    gcc -shared  example_wrap.o -o _example.soclean:    rm -f *.so *.o *_wrap.* *.pyc

test.py

import exampleprint str(example.fact(2))

test.py用于检查扩展是否有效.但是当我运行test.py时,它输出:

Traceback (most recent call last):  file "test.py",line 3,in <module>    print str(example.fact(2))AttributeError: 'module' object has no attribute 'fact'

这是我使用dir时的输出(例子):

['__builtins__','__doc__','__file__','__name__','__package__','_example','_newclass','_object','_swig_getattr','_swig_property','_swig_repr','_swig_setattr','_swig_setattr_nondynamic']

出现这个输出的原因是什么?

如果我想要成功运行该程序,我该怎么办?

解决方法 请尝试更换如下:

%#include "example.h"

通过

%include "example.h"
总结

以上是内存溢出为你收集整理的python – SWIG:AttributeError:’module’对象没有属性’fact’全部内容,希望文章能够帮你解决python – SWIG:AttributeError:’module’对象没有属性’fact’所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存