我正在尝试按照本教程 http://docs.cython.org/src/tutorial/cython_tutorial.html#cython-hello-world 在 Cython 中做一个“Hello World”程序
我创建了 helloworld.pyx
print("Hello World")
和 setup.py
:
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize("helloworld.pyx")
)
如何更改 setup.py 以指定我的源代码是 Python 3,而不是教程中的 Python 2?如果我从命令行调用“cython”命令,它接受 -3
选项。但是,如果我使用 python setup.py build_ext --inplace
进行编译,如教程中所示,我该如何指定 Python 3 源代码?对于 Hello World 程序来说,这可能并不重要,但当我开始将 Cython 用于实际项目时,它就很重要了。
原文由 rsteward 发布,翻译遵循 CC BY-SA 4.0 许可协议
可以将
language_level
作为选项 传递给cythonize
setup.py
的函数:另一种可能的语法是
以上可能比添加更方便
项目中的每个 pyx 文件,这可能是必要的,因为自 Cython 0.29 以来,如果
language_level
未明确设置,则会出现警告:因为
language_level
是全局设置,装饰器甚至不会被cythonized。