问题描述
cython example.pyx
这个文件包含很多预处理器指令,可以根据 Python 版本等条件有条件地选择不同的实现。是否可以选择在 cython 代码中执行相同的操作。
我确实看到了 here,它支持将 cython 条件编译为 c。 所以当我使用例如
IF PY_MAJOR_VERSION < 3:
codepath1
ELSE
codepath2
cython src/test.pyx --compile-time-env PY_MAJOR_VERSION=3
生成的 c 文件将只包含两个代码路径之一。所以它只兼容一个非常特定的 Python 版本,但仍然包含很多处理其他版本的代码。我正在寻找一种生成 c 文件的方法,该文件包含两个代码路径并使用预处理器指令选择它们。
...
#if PY_MAJOR_VERSION < 3
codepath1
#else
codepath2
#endif
...
到目前为止,我还没有找到在 cython 中实现这一目标的方法。有没有办法,或者我是否必须将所有与版本相关的代码(例如,在使用 Python C-API 时)放在一个 c 文件中?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)