我的任务是将 ac 库“包装”到 python 类中。文档在这个问题上非常含糊。他们似乎希望只有高级 python 用户才能实现 ctypes。
一些循序渐进的帮助会很棒。
所以我有我的 c 库。我该怎么办?我把什么文件放在哪里?如何导入库?我读到可能有一种方法可以“自动换行”到 Python?
(顺便说一句,我在 python.net 上做了 ctypes 教程,但它不起作用。意思是我认为他们假设我应该能够完成其余步骤。)
事实上,这是我在他们的代码中遇到的错误:
File "importtest.py", line 1
>>> from ctypes import *
SyntaxError: invalid syntax
我真的可以在这方面使用一些分步帮助!
原文由 spentak 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是一个快速而肮脏的 ctypes 教程。
首先,编写您的 C 库。这是一个简单的 Hello world 示例:
测试库.c
现在将它编译为一个共享库( mac fix found here ):
然后,使用 ctypes 编写一个包装器:
测试库包装器.py
现在执行它:
你应该看到输出
如果您已经想到了一个库,则可以跳过本教程的非 Python 部分。确保 ctypes 可以通过将其放入
/usr/lib
或其他标准目录来找到该库。如果这样做,则在编写包装器时无需指定完整路径。如果您选择不这样做,则在调用ctypes.CDLL()
时 必须 提供库的完整路径。这里不是提供更全面教程的地方,但如果您在此站点上寻求有关特定问题的帮助,我相信社区会帮助您。
PS:我假设您使用的是 Linux,因为您使用过
ctypes.CDLL('libc.so.6')
。如果您使用的是另一个操作系统,情况可能会发生一些变化(或相当多)。