Linux环境下如何从Cython的.pyx文件生成.cpp文件而非.c文件
解决Cython生成.cpp文件的问题
作为Cython新手,你遇到的是默认行为的问题——Cython默认会生成C代码,要生成C++代码需要显式指定参数。在Linux环境下,你有两种简单的方式实现:
方法一:直接使用命令行参数
在终端里执行cython命令时,加上--cplus(或者短格式-+)选项,就能强制生成C++文件:
# 长格式参数 cython --cplus project_file.pyx # 短格式参数,更简洁 cython -+ project_file.pyx
执行完这条命令后,你就能在当前目录下看到生成的project_file.cpp文件了。
方法二:通过setup.py配置(适合项目构建)
如果你的项目需要后续编译成Python扩展模块,推荐用setup.py的方式,在配置里指定C++语言:
from setuptools import setup from Cython.Build import cythonize setup( ext_modules=cythonize("project_file.pyx", language="c++") )
然后在终端运行:
python setup.py build_ext --inplace
这个命令不仅会生成project_file.cpp,还会自动编译成对应的.so扩展模块,方便你直接在Python中导入使用。
额外提一句:启用C支持后,Cython会生成符合C规范的代码,比如会处理C的命名空间、支持C类型的交互等,如果你后续要和C++代码交互,这个设置是必需的。
内容的提问来源于stack exchange,提问作者Stacey
相关产品推荐
相关产品推荐

