python print()仅在将.py Cpy编译为.so并导入后,才将其参数打印为元组。它如何表现得像普通的py文件?
方案就是这样。这是在mod4.py中定义的函数output()
:
def output(a, b): print(a, b, str(a)+str(b))
我使用以下
main.py
呼叫output()
:
import mod4 mod4.output(2, 3)
输出将像:
2 3 23
然后我通过编辑setup.py来使用CPython编译mod4.py:
from distutils.core import setup from Cython.Build import cythonize setup(name="mod4.app", ext_modules=cythonize("mod4.py"))
并在命令行中执行
python setup.up build_ext --inplace
,这反过来会生成mod4.cpython-37m-darwin.so
。然后main.py
将输出为:
(2, 3, '23')
看起来就像是print()的元组。
python的版本是3.7.4,
$ python --version Python 3.7.4
如何在.so输出中获得
output()
,就像在.py中一样?
python print()仅在将.py Cpy编译为.so并导入后,才将其参数打印为元组。它如何表现得像普通的py文件?场景就像...
感谢您的建议,@ quamrana和@ead。有了您的提示和对How to specify Python 3 source in Cython's setup.py?的引用,我如下编辑了setup.py(在cythonize()调用中添加了[[language_level =“ 3”