如何配置pyximport以始终生成cpp文件?

时间:2014-02-21 15:11:39

标签: c++ configuration cython

我想在cython中大部分时间使用c ++功能,我发现使用pyximport非常方便,但是为每个pyx模块制作pyxbld配置文件(如How do you tell pyximport to use the cython --cplus option?中所述)是令人厌倦的。我是否可以将pyximport配置为始终为所有pyx模块生成c ++输出?

1 个答案:

答案 0 :(得分:7)

这是一个黑客。

以下代码对get_distutils_extension中的pyximport函数进行修补,以便它创建的Extension个对象的language属性设置为c++

import pyximport
from pyximport import install

old_get_distutils_extension = pyximport.pyximport.get_distutils_extension

def new_get_distutils_extension(modname, pyxfilename, language_level=None):
    extension_mod, setup_args = old_get_distutils_extension(modname, pyxfilename, language_level)
    extension_mod.language='c++'
    return extension_mod,setup_args

pyximport.pyximport.get_distutils_extension = new_get_distutils_extension

将上面的代码放在pyximportcpp.py中。然后,使用import pyximport; pyximport.install()

,而不是使用import pyximportcpp; pyximportcpp.install()