Python 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

我开始在一个大项目中使用cffi,需要导入很多文件。 当我使用结构时,我有很多这样的结构声明:

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