问题标签 [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 导入本地库
我有一个如下所示的 test.c(在与 python 文件相同的目录中)
现在我想将它“导入”到我的 python 脚本中
使用 cffi 文档中的示例可以正常工作。
对不起,大的回溯错误......
python - 在 Windows 上安装 python 库 cffi
如果我pip install cffi
,我得到这个:
这显然是在使用 MinGW。
我也尝试在这里从轮子安装:
我收到以下奇怪的错误:
事实上,当我查看那个 (temp) pip-nkx4aq-build 目录时,我发现那里没有 setup.py。
所以,我的问题很简单,为什么会失败,我需要做什么才能在 Windows 上安装 cffi?
python - 干净地卸载共享库并使用 Python CFFI 重新开始
我正在设置并打开这样的 DLL:
如何关闭库并再次打开它?如果我做
CDefError: cannot parse ...
并在尝试时再次尝试上面的代码ffi.cdef()
。
我已经看到了一些使用 ctypes 的示例,dlclose()
但找不到 CFFI 的等价物。
谢谢。
python - 如何 pip 安装 cairocffi?
我如何cairocffi
安装pip
?
cairocffi
Pycairo
是https://github.com/SimonSapin/cairocffi的基于 CFFI 的替代品。
我正在尝试在 Ubuntu 14.04 上安装它:
我尝试使用标准 pip 命令进行安装,但我得到了这个:
我已经手动检查了权限,我意识到没有写访问权限。为什么呢?为什么 sudo 不能覆盖权限?
当我尝试sudo -H pip install cairoffi
时,我得到了:
正如@MattDMo 建议的那样,我已经尝试过apt-get install libffi
,但仍然没有成功:
但是libffi
包管理器上没有,所以我试过了libffi-dev
:
它安装libffi-dev
成功,但cairoffi
仍未安装:
python-2.7 - openshift python pip install cffi 失败
在 git push 到 openshift repo 之后部署应用程序时,当 requirements.txt 开始安装时出现错误。
问题是,在我的本地机器上执行时没有问题pip install cffi
同样的事情发生在pip isntall cryptography
和pyOpenSSL
python - 无法在 mac os x 10.10 上使用 pip 安装 cffi
我正在尝试在 Mac OS X 10.10 上安装 cffi,需要它来进行爬虫和加密,并通过 brew 安装 pip 和 python。我已经更新了安装的命令行工具并更新了 xcode。
libffi-3.0.13 已安装。
我尝试重新链接 gcc,没有运气。我尝试使用这些标志:
python - Python cffi 模块:verify() 是否需要从我的 python 代码中重新编译我想使用的整个 c 库?
假设我需要使用来自 python 代码的共享库中的一些函数,例如 libfoo.so。verify()
我认为 cffi 模块可以帮助我,特别是因为如果使用该函数,它似乎支持不透明类型。
不过,我并不完全理解,文档的含义是什么
verify() [...] 是另一种选择:它不是执行 dlopen,而是生成并编译一段 C 代码。
我必须重新编译整个 libfoo.so 吗?还是只是某个部分(标题的相关部分)?如果是后者,这在依赖项、配置选项等方面的麻烦是否明显减少……?
python - 如何在 cffi 中支持 64 位指针?
我正在使用 cffi 将我的 Python 模块与 C 库接口。
我在 Linux 上一切正常,但我在 Mac OS X(Yosemite - 64 位)上遇到了困难。这是我写的一个显示问题的最小示例:
foo.h
foo.cpp
生成文件
foo.py
所以这里没有什么太花哨的:一个简单的mymalloc(size_t)
函数,它充当真实函数的包装器,malloc(size_t)
并在返回之前显示生成的指针。
执行foo.py
(使用make run
)时,我看到以下输出:
在 的情况下mymalloc(size_t)
,似乎 cffi 以某种方式截断/修改了指针整数值:我得到0xffffffffa0e00280
而不是预期的0x7fdba0e00280
. 这基本上是指针的值,但仅存储在 32 位上。malloc(size_t)
然而,它具有完全相同的原型似乎可以由 cffi 正确处理并返回一个 64 位地址。
我不知道我在这里做错了什么。有人会有线索吗?
python - How can I access errno from Python's CFFI?
I'm using cffi
to wrap a library that uses errno
to return error values.
How can I read errno
from cffi?
python - 如何使用 Python 的 CFFI 将指针传递给 C 函数?
如何使用 Python 的 CFFI 将指针传递给 C 函数?
例如,如果我要包装的库有两个功能:
我怎样才能调用some_function
传入some_callback
?例如,类似:
我知道我可以用来ffi.callback(…)
在回调中包装 Python 函数,但我想知道是否可以避免重复 C 函数的类型签名和诸如此类的东西。