gpt4 book ai didi

python - 为什么有些 Python 标准库是用 .so 编写的,而大多数其他库是用 .py 编写的?

转载 作者:行者123 更新时间:2023-12-02 11:39:30 25 4
gpt4 key购买 nike

大多数标准库都是用 Python .py 文件编写的,但有些在 Unix 上是 .so 文件,在 Windows 上是 .pyd 文件。例如 os 写在 os.py 中,而 pyexpat 写在 pyexpat.cpython-36m-darwin.so 中。这些 .so 库有什么特别之处?

最佳答案

.so 文件是共享对象文件,它们是编译后的共享库。它们通常用编译语言编写,例如 CC++Go 等。

Python 是一种解释性语言,用它编写的代码往往很慢,因为解释器需要遍历正在执行的每一行代码,将其翻译成某种中间字节代码,然后最终执行字节代码。这可能会很慢。

在考虑性能的情况下,模块是用较低级语言(例如C)编写的,然后编译为共享对象文件。这些文件可以由 Python 解释器加载并像普通的 python 模块一样使用。由于这些模块已经编译为机器代码,因此可以直接执行而无需通过解释器,因此它们比用Python编写的等效代码要快得多。

使用 C 等较低级语言编写还可以有效地使用内存,甚至可以释放全局解释器锁以利用多核并行性。 numpyscipy 等科学模块就是其中的示例。

关于python - 为什么有些 Python 标准库是用 .so 编写的,而大多数其他库是用 .py 编写的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52365723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com