问题标签 [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.
python - cffi:如何将字符串的字符地址发送到 C 函数?
我实际上正在用 cffi 模块编写一个 python 程序来测试我的 C/ASM 库,并且我设法让它工作。但我不知道如何访问字符串中间的字符地址以将其传递给我的 lib 函数。举个例子:
打印:
b'你好世界'
b'\x00\x00\x00\x00\x00 世界'
但是我怎样才能测试类似的东西:
我尝试了不同的东西,比如:
输出:
TypeError:ctype 'void *' 的初始化程序必须是 cdata 指针,而不是 int
也尝试了id(),但没有成功......
我对python不是很熟悉,但它似乎不是一个简单的利用它,所以这里的帮助很少,谢谢!
Python 3.7.0
python - setuptools 和 cffi:如何更改库路径
我正在使用 cffi 创建一个 python 程序来测试我的 C/ASM 库与真正的 libc 函数。
我尝试使用 setuptools 来设置我不同的 cffi 模块。所以这是我的文件树:
这是我的 libftasm_builder.py:
和我的 setup.py:
所以它构建得很好,正如你在文件树中看到的那样,我有我的 cffi_files,但是当我尝试执行我的 libasm_tester.py 时,我有这个错误:
我不明白为什么它会尝试从 build/lib/_libasm_cffi.abi3.so 打开 lib,因为我告诉 libasm_builder:
我在这里想念什么?:( 。 谢谢你 !!
[编辑]
在我的 libasm_tester.py 中,我必须在我的文件顶部添加它才能导入 cffi_modules:
也许是原因?但如果我不添加它,我将无法导入 cffi 模块......
python - 路径不能包含斜杠
我正在尝试使用 Python 和 CFFI 模块在 C 中进行单元测试。它几乎可以工作,但我不能将它用于子目录。
在测试时,我的项目看起来像:
但是当我为我的项目转换它时:
我的make check
运行如下:
我必须调整我的测试文件:
注意这一行:
所以我的日志是
但它不是一个模块,它是一个简单的目录。
你有解决办法吗?
问候。
common-lisp - 在不复制数据的情况下将外部内存解释为 lisp 内存(反之亦然)
我尝试使用数据库 API C 函数(例如,)将 BLOB 逐块写入数据库db-write-chunk
。此函数将指向外部内存(放置块的位置)的指针作为参数。所以,我为一个块做缓冲区:foreign-buffer
。我将从文件(或二进制流)中获取块read-sequence
数据stream-buffer
:
L
在 BLOB 中是大的,循环可能会迭代很多次。除此之外,所有这些代码都可能被外部循环(例如批量插入)包装。所以,我想尽量减少循环体中的步骤数。
要做到这一点,我需要:
能够不将序列读入流缓冲区,而是直接读入外部缓冲区,如下所示:
/li>或者能够将流缓冲区解释为外部内存,如下所示:
/li>
是否可以仅使用单个缓冲区(本机或外部缓冲区)来解决我的问题,而无需在它们之间复制内存?
python - 由于 cffi.api.CDefError 无法使用 pyinstaller
谁能看看我的 pyinstaller 出了什么问题?
我也尝试将 .py 文件转换为 .exe 文件,但产生了同样的错误
更新。12/15。顺便说一句,我已经在我的计算机上安装了 python 2.7 和 python 3,这会是问题吗?
但是,我尝试在 C:\Python27\Scripts 下安装 pyinstaller 以避免 2 个 python 之间的冲突。(我不确定这是否仍然会导致问题,但我只是尝试列出我所知道的问题的所有细节。)
新的更新。12/16。我试图将我的目标文件(要转换)移动到安装了 pyinstaller 的脚本文件夹中,该文件将被成功转换。但是脚本文件夹会乱七八糟,因为会生成多个文件夹和文件。
我在下面添加了从 cmd 生成的问题:)
python - 在 raspbian 拉伸上安装 python 包 brypt 和 cffi 时出错
我正在尝试安装依赖于 cffi 的 brypt,
但这会导致如下所示的错误:
我最初是在我的 MacBook 上测试我的网络应用程序,但是当我上传到基于 raspbian 的服务器上,并尝试从 requirements.txt 安装时,只有 brcypt 安装失败。
c - Pypy CFFI 内存管理问题
T 试图通过添加一些 c 函数来加速我的 Pypy 代码。问题是,内存使用量一直在增加!我看到了一些关于这个主题的帖子,并尝试做一个简单的测试来说明这一点。在下面的测试中,我可以根据这篇文章(Python CFFI 内存管理问题)释放内存,但我的代码崩溃如下:free(): invalid next size (normal)。看来我双重释放内存...
谁能帮我解决我的问题?
python - 如何与 numba 中的 cffi void 指针交互
我有一个 C 库,它与 CFFI 接口,定义如下:
zkdtree
请注意,从未引用过类似事物的内部结构。
目前我正在加载一个包含相应符号的动态库:
我希望能够在 numba jitted 函数(在 nopython 模式下)中调用这些函数并交易各种匿名结构(如 zkdtree)。我看过这个模块numba.cffi_support
,但似乎不知道如何教它理解我的定义。
我尝试过各种变化,但均未成功
但我无法让它同时tree
与 和一起使用err
。我收到类似的错误
common-lisp - 如何从 cffi:list-foreign-libraries 获取外国库的绝对路径?
假设我想创建 Common Lisp 应用程序中使用的当前动态库的转储。鉴于cffi:list-foreign-libraries的结果,我如何获得外国图书馆的绝对路径?
如果给定的解决方案可以在操作系统方面或至少在 CL 实现方面具有可移植性,那就太好了。
python-3.x - CFFI 编译带有依赖项的 libpango?(泰国/弗里比迪/达特里)
我正在尝试为 aws lambda 设置一个预编译包,其中必须包含所有必需的库。
我的依赖是:pango 和 cairo
所以,我所做的是去https://fedora.pkgs.org并下载它们的 64 个版本,但是当我第一次执行我的代码 (WeasyPrint/cffi) 时,它给了我以下信息:
OSError:无法加载库“pango-1.0”:libthai.so.1:无法打开共享对象文件:没有这样的文件或目录。此外,ctypes.util.find_library() 无法找到名为“pango-1.0”的库
所以我只是去了上面提到的同一个网站,下载了 libthai,然后它对 libfridi 给出了同样的错误,然后对 libdatrie 给出了同样的错误。
我只是担心这永远不会停止,是否有任何编译过的 pango 具有所有这些依赖项?
毫无价值,我完全不知道自己在做什么,只是试图让它发挥作用。