提问人:mohammad 提问时间:10/4/2013 更新时间:11/13/2019 访问量:5996
使用 print 函数参数编译 cython 错误
cython error compiling with print function parameters
问:
使用 Cython 从 HelloWorld.pyx 创建 HelloWorld.c 时,发生以下错误:
error compiling Cython file:
------------------------------------------------------------
...
print('hello world',end='')
^
------------------------------------------------------------
p21.pyx:1:23: Expected ')', found '='
我创建 helloworld.c 的命令是:
cython3 --embed p21.pyx
答:
19赞
uzumaki
5/10/2014
#1
默认情况下,cython 似乎将所有打印视为 python 2 语句。为了使用 python 3 print 函数,您需要从 future 模块导入它:
from __future__ import print_function
print('hello world',end='')
8赞
AkiRoss
9/6/2015
#2
我不知道这是否仍然相关,但就我而言,使用 cython 0.23,要编译 Python3 代码,您必须传递标志。例如-3
cython -3 mycode.py
评论
0赞
tfpf
12/7/2020
在我看来,这是最好的答案,因为它不需要您修改任何源文件。
1赞
DavidW
5/21/2022
在我看来,这不是最好的答案,因为要使用的语言级别是源文件的一个属性。将它放在源文件中要强大得多,然后您永远不会在命令行上忘记它
0赞
AkiRoss
6/29/2022
我同意,即使我建议它作为可能的解决方案,也不是最好的选择。
21赞
YangZi
2/24/2016
#3
Cython 默认使用 Python 2 语义。将语言级别设置为 3,这可以通过以下注释来完成:
#cython: language_level=3
编号: https://cython.readthedocs.io/en/stable/src/reference/compilation.html#compiler-directives
评论