问题标签 [python-cffi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
636 浏览

python - 带有 Numpy 数组的 Python PYPY Cffi

我正在尝试学习使用 cffi,但我对 c 还很陌生,所以它有点棘手。我正在练习一个简单的函数来计算双精度数组的总和。奇怪的是,我的 sum 函数没有给出正确的输出。谁能明白为什么?我是否正确处理数组?我不明白为什么我必须将 numpy 数组转换为指针。

输出:

0 投票
1 回答
1076 浏览

python - How CFFI use the c file in a certain directory?

I am learning to call c in python program by CFFI and write c file named 'add.c' as below :

and a python file named 'demo.py' to call add method in 'add.c':

When I run demo.py, I get the error that add.c file cannot be found. Why file add.c cannot be found and how can I to fix it?

0 投票
1 回答
3725 浏览

python - 为什么 cffi 比 numpy 快这么多?

我一直在玩用 python 编写 cffi 模块,它们的速度让我怀疑我是否正确使用了标准 python。这让我想完全切换到C!说实话,有一些很棒的 python 库我永远无法在 C 中重新实现自己,所以这比任何事情都更具假设性。

这个例子展示了 python 中的 sum 函数与 numpy 数组一起使用,以及与 ac 函数相比它有多慢。是否有一种更快的 Pythonic 方法来计算 numpy 数组的总和?

只是为了展示该功能的工作原理:

现在,如果我对这个简单的函数计时,我发现 numpy 真的很慢!我以正确的方式使用 numpy 吗?有没有更快的方法来计算python中的总和?

次:

0 投票
2 回答
612 浏览

python - python扭曲环境:_Cryptography_cffi_444d7397xa22f8491.pyd DLL加载失败?

我的开发环境:win7 64 python2.7.6 64 twisted 13.2

我已经安装了所有需要扭曲的模块。但总是抛出错误:

在另一台计算机上,我可以使用默认反应器,但是当我使用iocpreactor时出现错误。当使用默认反应器时,tcp模式,只有一个连接可以正常工作......

我尝试更改一些旧版本的模块,问题仍然存在,这是怎么回事?

0 投票
1 回答
411 浏览

python - 互操作性建议 - Python、C、Matplotlib/OpenGL 运行时效率

现在的情况:

  • 每次都重写 C 代码以进行几乎相同类型的模拟(小鼠的学习行为)
  • 为每个模拟编写 Matlab 代码以绘制结果(2D,可能是 3D 图)

这是我的目标:

  • 设计允许我构建动态模拟器的 GUI (wxPython)
  • GUI 还通过 OpenGL(或者可能是 Matplotlib)显示模拟结果
  • 使用 C 包装器 (CFFI) 运行模拟并将结果(平均值)发送到 OpenGL 或 Matplotlib

问题:

  • 为了让这个软件尽可能高效地运行,对我来说应该使用 CFFI 来运行模拟是有意义的……我不确定是否拥有该 FFI 实例(或单独一个?)使用 OpenGL C 绑定来完成所有图形工作并将生成的图形传递给 Python 层以在 GUI 中显示,或者让 CFFI 将模拟的平均值(被绘制的数据)发送到变量Python 级别并使用 PyOpenGL 或 Matplotlib 绘制图形。
0 投票
2 回答
12111 浏览

python - 如何在 python wheel 包中包含外部库

.so我想使用 cffi 模块为在 Linux 上嵌入并使用外部库 () 的 python 创建包。

是否有标准方法将 .so 文件包含到 python 包中?

该包将仅在内部使用,不会发布到 pypi。

我认为 Wheel 包是最好的选择 - 他们会创建平台特定的包,其中所有文件都准备好被复制,因此不需要在目标环境上构建任何东西。

0 投票
1 回答
1484 浏览

python - 如何在 python-cffi 中使用共享动态库(在 linux 中)?

操作系统:CentOS 6(64位)

我在 C 中有一个动态库 (.so)。我想在它上面创建一个 Python 抽象层,然后用它来实现我的逻辑。我决定为此使用 CFFI,因为它不处理任何类型的 dsl(域特定语言)。

我想知道的几件事:

  1. 是否有一些好的起点可以参考(使用 cffi 加载和使用动态库)?官方网站上的文档讨论了这一点,但我正在寻找是否有一些具体的参考和一些例子。或者可能已经尝试过的人。
  2. 这种方法可能有缺点吗?

谢谢

0 投票
0 回答
210 浏览

python - 如何使用 python-CFFI 在 GSL 中包装随机变量生成函数?

我遇到的困难是 GSL 中的随机变量 (RV) 生成函数需要一个指向特殊结构的指针gsl_rng作为它们的参数之一,例如

由于所有的 RV 生成函数共享同一个“随机源”,用 表示gsl_rng * r,C 中的一个典型使用模式是先构造一个gsl_rng * r,然后调用各种随机变量生成函数,r最后解构。

我想在 python 中使用 CFFI 来进行本地 C 调用以加速蒙特卡洛模拟程序。我现在的问题是如何gsl_rng * r从 python 端适当地“隐藏” C 指针,同时确保它由我从 python 调用的所有 RV 生成函数共享?

PS我知道如何在 Cython 中实现这一点,如下所示:

0 投票
3 回答
1954 浏览

python - 访问 cffi 枚举

假设我在 cffi 下定义了一个枚举:

现在再次调用时可以轻松访问它cdef。但是我如何在不重新声明的情况下在 python 中访问这个枚举呢?在文档中找不到任何提及。

0 投票
3 回答
16722 浏览

python - 在 osx 上 pip cffi 包安装失败

我正在为密码学和 Jasmin 安装安装 cffi 包。

我在发布问题之前做了一些研究,所以我找到了以下选项,但似乎不起作用:

系统

Mac OSx 10.9.5

python2.7

错误

请指导我以下问题。

谢谢

命令

env DYLD_LIBRARY_PATH=/usr/local/opt/openssl/lib/ ARCHFLAGS="-Wno-error=unused-command-line-argument-hard-error-in-future" LDFLAGS="-L/usr/local/opt/ openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" sudo -E pip install cffi

日志