[将CPython编译成.so后的python print()输出元组>

问题描述 投票:0回答:1

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文件?场景就像...

python printing shared-libraries cpython
1个回答
0
投票

感谢您的建议,@ quamrana和@ead。有了您的提示和对How to specify Python 3 source in Cython's setup.py?的引用,我如下编辑了setup.py(在cythonize()调用中添加了[[language_level =“ 3”

© www.soinside.com 2019 - 2024. All rights reserved.