【发布时间】:2021-01-23 10:22:24
【问题描述】:
许多 Python 的库,例如Pandas 和 Numpy 实际上是 C 或 C++,并带有 Python 包装器。我没有编译语言的经验,也不了解这些库是如何跨平台的(即在 Mac、Windows、Linux 上运行),因为我的理解是 C 和 C++ 需要针对特定的操作系统进行编译。这是如何工作的?
编辑:
How do you compile Python C/C++ extensions for different OS/versions of Python? 没有回答我的问题,因此这不是重复的。这个问题是关于理解它是如何工作的,这个问题假定了这种理解并且是关于实现的。
【问题讨论】:
-
您已经回答了这个问题。它们需要针对目标平台进行编译
-
他们为不同的平台发布构建,你可以看到它们都列在例如pypi.org/project/numpy/#files.
-
Python 本身也是跨平台的。 Python 解释器是用 C 编写的。它是为每个平台单独编译的。例如,在 Windows 上,您最终会得到
python.exe。 -
Python 既有纯 Python 模块,也有已编译扩展的模块。这些必须按平台编译,并且通常按机器编译,以解决库和绑定的各种差异。