擅长:python、mysql、java
<p>默认情况下,Cython采用python2语法,即使使用python3也是如此。以下是您应该创建的最少、完整的示例:</p>
<p>赛欧印花_测试.pyx在</p>
<pre><code>x = print
</code></pre>
<hr/>
<p>如果我用Cython编译它</p>
^{pr2}$
<p>我收到了你的错误信息。<code>print</code>不是标识符或文本,因为在python2语法下,它是一个特殊语句。在</p>
<p>但是,如果将Cython设置为使用Python 3语法编译它:</p>
<pre><code>cython -3 cy_print_test.pyx
</code></pre>
<p>它工作得很好-在python3语法下print是一个函数,因此这非常有意义。在</p>
<hr/>
<p>获取Python3语法的另一种方法是将以下行添加到.pyx文件的开头</p>
<pre><code>#cython: language_level=3
</code></pre>
<p>或者将其指定为<code>setup.py</code>中的编译器指令:</p>
<pre><code>from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize('cy_print_test.pyx', compiler_directives={'language_level': 3}),
)
</code></pre>
<p>(请注意,您的<code>setup.py</code>也应构成问题中最小、完整示例的一部分)</p>