$ cython --version
Cython version 0.25.2
$ python --version
Python 3.5.1
$ python setup.py build_ext -i
Error compiling Cython file:
------------------------------------------------------------
...
def say_hello_to(name):
print("Hello %s!" % name, end='')
^
------------------------------------------------------------
hello.pyx:2:33: Expected ')', found '='
$ cat hello.pyx
def say_hello_to(name):
print("Hello %s!" % name, end='')
print("Hello ", end='')
$ cat setup.py
from distutils.core import setup
from Cython.Build import cythonize
setup(
name = 'hello',
ext_modules = cythonize("hello.pyx")
)
问题>如何在没有换行符的情况下在Cython中打印?
谢谢
答案 0 :(得分:0)
手边没有Cython可以测试,但直接打印到stdout应该可以解决问题:
import sys
sys.stdout.write("Hello %s!" % name)
答案 1 :(得分:0)
不想打印换行符吗?
在py2中:
print item, # the comma ',' does the trick.
在py3中:
print(item, end='')
Cython编译默认为py2语法。如果一个使用语法仅在py3中有效,那么在编译时,设置中的language_level=3
或命令行中的cython -3
或jupyter notebook中的%%cython -3
必须明确给出。
还有一件事,可以在cython中编写py2语法,但链接到py3头和库,这是将py2移植到py3的简单方法。