问题标签 [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.
python - CFFI - 在 ABI 模式下是否可以对 C 代码进行 Python 回调?
我需要为 C 代码提供回调。基本上,我需要这个工作:
在 C 中:
在 Python 中:
添加@ffi_builder.def_extern()
到py_callback
抛出异常:ffi.def_extern() is only available on API-mode FFI objects
.
那么在 ABI 模式下是否有可能呢?
python - 使用 CFFI 从 Python 调用带有 OpenMP 的 C 函数
我正在使用 CFFI 从 Python 中使用 OpenMP 调用 C 函数。我的代码在我的一台计算机上运行,但在另一台计算机上运行非常相似。
错误是
我正在使用 Python 3.5(最新的 Anaconda 发行版)和 TDM-GCC 5.1.0。测试在两台计算机上运行。什么可以解释不同的行为?
python - 将标志添加到 cffi 编译过程
我使用 cffi 模块来包装一个简单的 c 代码。问题是,我需要添加一个标志以使其编译(std=c99)。目前我有类似的东西:
问题是,cffi 自己调用 gcc,我想将 std=c99 添加到它调用 gcc 的标志中。我缺少任何参数吗?
(注意:我可以更改 gcc 命令本身或运行 cffi 自己使用的 gcc 命令,我想知道我是否缺少一些正确的方法)
python - pip安装pyopenssl时权限被拒绝错误
当我试图强制重新安装pyopenssl
时,我在尝试安装时遇到了以下错误pycparser
。我使用以下命令在带有 Python 2.7 的 Windows 7 64 位上执行此操作:
这是回溯:
这是我注意到的:
- 它只发生在
_cffi_backend.pyd
- 其他软件包安装和卸载正常。 - 我可以
pip uninstall cffi
重新安装它,但只要它存在,就会出现_cffi_backend.pyd
权限错误。这意味着任何调用cffi
(例如pyopenssl
)的安装都将失败。
这是我尝试过的:
- 卸载重装
cffi
:没有效果 - 成功使用icalcs设置
_cffi_backend.pyd
为完全访问,大家:没有效果 - 调用:没有
pip
效果python -m pip install pyopenssl --ignore-installed
- 安装前关闭所有应用程序并检查正在运行的进程:没有效果
- 重启。大多数情况下都是巫毒教,但只是为了彻底:没有效果
python-2.7 - 在 Solaris 10 上从源代码安装 Python 加密包
我正在尝试在 Solaris 10 系统上安装 Python加密包。我已经从我的主目录中的源代码构建了 Python 2.7 和 libffi。我可以通过指定 libffi 的路径来构建 cffi:
但是,构建加密的尝试失败并出现以下错误:
我已经设置LD_LIBRARY_PATH
为/export/home/ef/libffi/lib
.
我在编译 cffi 时注意到以下警告 - 它可能相关吗?
我该如何解决这个问题?我在网上发现的所有类似问题都通过安装相关的操作系统包(例如 sudo apt-get install build-essential libssl-dev libffi-dev python-dev
)得到修复。OpenCSW 不是一个选项。
python - Flask-Bcrypt - AttributeError: 'module' 对象没有属性 'ffi' - 部署到 AWS Beanstalk
我有一个 Flask 应用程序,它已部署到 Ubuntu 实例,并且在我的本地 virtualenv 中正常工作。问题在于 Flask-Bcrypt,它扩展了 Bcrypt。当我部署到 AWS Beanstalk 时,我收到以下错误:
查看Bcrypt 源代码,我可以看到它FFI
是从以下位置导入的cffi
:
正如您从下面的 pip 输出中看到的那样,cffi==1.9.1
已安装。但是,如果我运行,which cffi
我可以看到:
系统信息:64bit Amazon Linux 2016.09 v2.3.0 running Python 2.7
这些软件包安装在eb deploy
:
我在这里看到了这个问题,这表明存在包冲突。但是,我没有py-bcrypt
安装。
pip freeze
返回以下内容:
非常感谢任何帮助。
c++ - 将 Python CFFI 与 .lib 以及一堆 .dll 和 .h 文件一起使用
我需要为专有库编写 Python2 包装器,由几个 .h 文件(我做了一个大)、一堆 .dll 和一个 .lib 文件来链接所有这些东西。
我认为我需要 API 级别,因为 .h 文件中的所有这些“typedef”
创建包装器的脚本:build_wrapper.py
这运行没有错误Creating library .\Release\_wrapper.lib and object .\Release\_wrapper.exp
但是,例如,
失败
ScadAPI
定义为
在 ScadWrapper.h 中
python-2.7 - 收到此错误 *** OSError: cannot load library C:\WINDOWS\libzsfc.dll: error 0xc1
我正在尝试使用 python cffi 库加载 .dll 文件,但是当我尝试加载它时,我收到以下错误:-
我正在使用这个
但这给了我错误,我尝试了很多来解决这个问题,但它仍然是一样的,如果有人遇到同样的问题,请告诉我。
python - 如何在这个 tkinter/exec()/cffi 组合中修复这个堆栈溢出?
我有一个 Python 驱动的 DSL,我通过exec()
. 此 DSL 包括通过 CFFI 进行的本机函数调用。
当调用一个只有 2 个 C 调用深度的本机函数时,我遇到了堆栈溢出(所以,你让它变得不可用!)崩溃uint16_t
,每个 C 函数的堆栈上只分配了少数 s 。Python 应用程序是一个tkinter
GUI,它通过 timer () 事件调用 DSL master.after(1000, self.tick)
,这可能会占用堆栈本身的很大一部分。
这里没有递归调用。
OS X 10.12.3,Python 3.6.0rc1(v3.6.0rc1:29a273eee9a5,2016 年 12 月 6 日,16:24:13),CFFI 1.9.1
我知道resource.setrlimit(resource.RLIMIT_STACK, (resource.RLIM_INFINITY, resource.RLIM_INFINITY))
,但它需要超级用户权限。我相信这不是必需的,因为只剩下一个堆栈用于两个函数调用是不正常的。
CFFI 或 exec() 会限制被调用者的堆栈大小吗?
从 DSL 调用的函数:
exec
调用代码:
苹果报告片:
(此线程真的到此结束,Apple 报告中没有其他内容)
python - 'CompiledFFI' instead of 'FFI' when including 'cairocffi'
I want to use Pango with the Cairo backend in Python 3. I chose 'cairocffi' for reasons that are not relevant here. I am trying to run the example in the documentation. It calls Pango through CFFI. The very beginning of the example
gives the following error.
I have been trying to understand the CFFI documentation, but I am completely lost. First, where is CompiledFFI
documented? Second, why do not I see include
, cdef
, set_source
methods in the FFI
interface? And the main question is, what am I doing wrong?