I want to use c++ functionality most of the time in cython and I find using pyximport very convenient, but making pyxbld configuration file for each pyx module (as described in How do you tell pyximport to use the cython --cplus option?) is tiresome. Can I configure pyximport to always make a c++ output for all pyx modules?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
由
翻译强力驱动
问题:
回答1:
Here's a hack.
The following code monkey-patches the get_distutils_extension
function in pyximport
so that the Extension
objects it creates all have their language
attribute set to 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
Put the above code in pyximportcpp.py. Then, instead of using import pyximport; pyximport.install()
, use import pyximportcpp; pyximportcpp.install()
.