- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在研究如何使用 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
示例.i
%module example
%{
/* Put header files here or function declarations like below */
#define SWIG_FILE_WITH_INIT
#include "example.h"
%}
%#include "example.h"
生成文件
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.so
clean:
rm -f *.so *.o *_wrap.* *.pyc
测试.py
import example
print 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 - 痛饮 : AttributeError: 'module' object has no attribute 'fact' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30094061/
170!接近浮点 double 的极限:171!会溢出。 不过170!长度超过 300 位。 因此,有 没办法那170!可以用浮点数精确表示。 然而 Excel 返回 170 的正确答案!/169!
我正在尝试访问与我的目标主机不同的主机的 Ansible 事实。以下是我的示例剧本。但是当我运行下面的游戏时,不会为 util 服务器收集事实。谁能帮我,我怎样才能访问不同服务器的事实? --- -
我有点难以理解 not函数与模式匹配交互。我想写一个模式匹配,“这样的事实不存在”。 也就是说,我想要的是: (defrule init-count (not (highest-debt ?)
我有一个经常使用 observeChanges 的包 ( yeputons/meteor-smart-publish ),我想添加一个测试(我现在使用 TinyTest),它允许我确保所有这些观察者都
我遇到了一些 ansible 模块的问题。我这样编写自定义模块及其输出: ok: [localhost] => { "msg": { "ansible_facts": {
鉴于这些事实: pos(a,1). pos(b,2). pos(c,3). 我想找到一个角色的位置。例如,pos(b,P) P=2。 将这些事实转换为列表并进行成员资格检查是否更好,如下所示: mem
我们有一个文件夹,里面装满了需要设置为单个 URI 的 JSON 文本文件。目前这一切都是用一个 xUnit "[Fact]"完成的,如下所示 [Fact] public void TestAllCa
我正在尝试编写一个函数,它接受任何 TList 并返回 TList 的所有元素的字符串表示形式。 我尝试了这样的功能 function ListToString(list:TList):String;
我是 Scheme 的新手,所以请原谅这个问题:我有一个计算数字列表的阶乘的函数,但它在结果中的最后一个数字之前给了我一个句点。我哪里错了? 代码: #lang scheme (define fac
举个例子:我有一个数据库来检测访问者(机器人等),并且由于并非每个访问者都具有相同数量的“凭据”,因此我制作了一个“动态”表,如下所示:请参阅 fiddle :http://sqlfiddle.com
示例: [Fact] public void FooTest(){ } VS2015 中的结果:测试通过 我在 .NET 4.6 Framework C# 项目中使用 xUnit NuGet v2.4
我在/etc/ansible/facts.d/mount.fact 中创建了以下本地事实文件: [ { "name": "/mastersystem",
我是 puppet 和 ruby 的新手,只是尝试编写自定义事实但是......遇到以下问题 Facter.add("vsphere_installed") do confine :opera
我对 python 中函数装饰器的理解(我可能是错的)是它们应该添加副作用并修改函数的返回值。现在装饰器被添加到要装饰的函数的函数定义之上或通过赋值。这是一个小例子: def print_args_d
在为 future 几年设置 C++ 单元测试框架的过程中,我们入围了 GoogleTest 和 CppUnit。我对这两者都有一些经验,我最喜欢的是 GoogleTest。无论如何,为了说服我的老板
我有一个应用程序,我知道它可以制作一个很棒的多维数据集,并且比标准的平面 Reporting Services 报表更有用。我们即将与一名顾问一起进入 BI 领域,但我想在此之前先试一试,主要是因为我
我是音频播放的新手,并且整天都在阅读wav文件规范。我编写了一个简单的程序来提取文件头,但是现在我的程序始终返回false,因为DataID始终以“事实”而不是“数据”形式返回。 我认为有几种原因可能
我正在使用 RDBMS 构建一个穷人的数据仓库。我已确定要记录的关键“属性”: 性别(真/假) 人口统计分类(A、B、C 等) 出生地 出生日期 体重(每日记录):正在记录的事实 我的要求是能够运行“
我已将带有我想要的事实的 Pojo 模型的 .jar 导入到我的 Guvnor 存储库中。其中一个类有一个带参数的构造函数,这是我无法在给定部分的测试场景中实例化的唯一事实。我得到一个指向该类的 In
在官方 Java 指南中 “Programming with assertions”据称(页面最后一段) Few programmers are aware of the fact that a cl
我是一名优秀的程序员,十分优秀!