315得票12回答
将C库封装在Python中:C、Cython还是ctypes?

我想从Python应用程序中调用C库。 我不想包装整个API,只想包装与我的案例相关的函数和数据类型。 在我看来,我有三个选择: 创建一个实际的C扩展模块。 可能过度了,而且我也想避免学习扩展编写的开销。 使用Cython将C库的相关部分暴露给Python。 在Python中完成整个过程,...

138得票3回答
ctypes - 初学者

我有一个任务,需要将一个c库封装成一个python类。但文档对此事讲解极其模糊。似乎他们只期望高级Python用户才会实现ctypes。 希望能得到一些详细的步骤说明。 所以我有了我的c库。我该怎么做?我应该把哪些文件放在哪里?如何导入库?我看到可能有一种“自动封装”到Python的方法? (...

71得票5回答
如何使用C++类与ctypes?

我刚开始使用ctypes,并希望在Python中使用从dll文件中导出的C++类。假设我的C++代码如下:class MyClass { public: int test(); ... 我想创建一个包含这个类的.dll文件,然后使用ctypes在Python中加载.dll文件。现在...

69得票7回答
ctypes错误:libdc1394错误:初始化libdc1394失败。

我正在尝试将我的程序编译为共享库,以便可以使用ctypes在Python代码中调用。 使用以下命令可以成功编译该库:g++ -shared -Wl,-soname,mylib -O3 -o mylib.so -fPIC [files] `pkg-config --libs --cflags ...

67得票2回答
将Numpy数组传递给C函数进行输入和输出

哦,我的天啊,我真是个傻瓜。 在调用函数时,我只是简单地省略了第二和第三个参数。 就像个傻瓜一样。 因为这就是我。 以下是原始的愚蠢问题: 这似乎是一个非常常见的事情,但我找不到相关的教程,而且我对Numpy和ctypes也太无知了,以至于自己无法弄清楚。 我有一个在文件ctest.c中...

63得票10回答
Python:SWIG vs ctypes

在Python中,什么情况下SWIG比ctypes更适合调用共享库中的入口点?假设您没有SWIG接口文件。 这两者的性能指标是什么?

63得票4回答
如何使用ctypes将Python列表转换为C数组?

如果我有以下两个代码集,如何将它们粘合在一起?void c_function(void *ptr) { int i; for (i = 0; i < 10; i++) { printf("%p", ptr[i]); } return; ...

62得票3回答
我能用Python访问ImageMagick API吗?

我需要使用ImageMagick,因为PIL并不能提供我所需的图片处理功能。然而,我想要使用Python。 Python bindings(PythonMagick)自2009年以来就没有更新过了。我唯一找到的方法是使用os.system调用命令行界面,但这似乎很笨拙。 有没有办法直接使用...

56得票8回答
如何在Python中防止C共享库向stdout打印输出?

我使用一个导入C共享库的python库,该库会在stdout上打印信息。我希望获得整洁的输出以便将其通过管道使用或重定向到文件中。这些打印操作是在共享库之外完成的。 一开始,我的处理方式是: # file: test.py import os from ctypes import * fr...

52得票8回答
使用ctypes列出DLL中导出的函数

有没有办法通过 Python 外部函数库 ctypes 知道哪些函数从 dll 中被导出? 并且如果可能,能否通过 ctypes 知道导出函数的详细信息。 如果有,请问是否可以提供一段代码片段?