加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 09:50:40 所属栏目:百科 来源:网络整理
导读:我想在cython中大部分时间使用c功能,我发现使用pyximport非常方便,但是为每个pyx模块制作pyxbld配置文件(如 How do you tell pyximport to use the cython –cplus option?中所述)是令人厌倦的.我是否可以将pyximport配置为始终为所有pyx模块进行c输出? 解
我想在cython中大部分时间使用c功能,我发现使用pyximport非常方便,但是为每个pyx模块制作pyxbld配置文件(如 How do you tell pyximport to use the cython –cplus option?中所述)是令人厌倦的.我是否可以将pyximport配置为始终为所有pyx模块进行c输出?

解决方法

这是一个黑客.

以下代码对pyximport中的get_distutils_extension函数进行修补,以便它创建的Extension对象的语言属性都设置为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,language_level)
    extension_mod.language='c++'
    return extension_mod,setup_args

pyximport.pyximport.get_distutils_extension = new_get_distutils_extension

将上面的代码放在pyximportcpp.py中.然后,而不是使用导入pyximport; pyximport.install(),使用import pyximportcpp; pyximportcpp.install().

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读