How can a #defined C value be exposed to Python in a Cython module?

前端 未结 2 1024
小鲜肉
小鲜肉 2020-12-24 12:28

I\'d like to make the integer constants (ACTIVE_TAG, etc) defined here:

//island management, m_activationState1
#define ACTIVE_TAG 1
#define ISLAND_SLEEPING          


        
2条回答
  •  执念已碎
    2020-12-24 13:21

    It worked in my case. Maybe can be helpful for someone too:

    In my case I needed to export a #define from a linux kernel library. And it worked for my:

    # your_pxd_file.pxd
    cdef extern from "sched.h": #here are lots of `#define`'s clauses. something like the link: https://github.com/spotify/linux/blob/master/include/linux/sched.h
        cdef enum:
            CLONE_NEWNS
    

    In your .pyx file:

    from your_compiled_cython_package cimport CLONE_NEWNS
    
    print(CLONE_NEWNS)
    

    I hope this can be helpful for someone as it was for me =)

提交回复
热议问题