Python Cffi:避免重复声明
我开始在一个大项目中使用cffi,需要导入很多文件。 当我使用结构时,我有很多这样的结构声明:Python Cffi:避免重复声明,python,python-3.x,python-cffi,Python,Python 3.x,Python Cffi,我开始在一个大项目中使用cffi,需要导入很多文件。 当我使用结构时,我有很多这样的结构声明: ffi.cdef(""" typedef struct sMyStruct { int32_t nbData; int32_t nbMaxData; } tMyStruct; """) 由于我有多个相互依赖、多个导入,我有时会: cffi.error.CDefError: <cdef source string>:6: duplicate declaratio
ffi.cdef("""
typedef struct sMyStruct
{
int32_t nbData;
int32_t nbMaxData;
} tMyStruct;
""")
由于我有多个相互依赖、多个导入,我有时会:
cffi.error.CDefError: <cdef source string>:6: duplicate declaration of struct sMyStruct
是的,但我认为我们可以做得更好
有什么更好的建议吗?对于大型项目,使用cffi的离线模式会更好,还因为在启动项目时导入所有项目不会太慢。离线模式迫使您以更结构化和类似C的方式考虑声明,这应该可以避免这些问题。谢谢,我已经开始阅读离线模式。我需要一些时间为我的项目找到好的解决方案,但这似乎是一个好方法。
try:
ffi.cdef("""
typedef struct sMyStruct
{
int32_t nbData;
int32_t nbMaxData;
} tMyStruct;
""")
except cffi.error.CDefError as e:
if e.args[0].startswith("duplicate declaration"):
pass
else:
raise e
except:
raise