gpt4 book ai didi

python - 为什么有些 Python 模块必须是 "compiled"?

转载 作者:行者123 更新时间:2023-11-28 18:45:01 25 4
gpt4 key购买 nike

我注意到 Python 模块/包有两种类型。有些只是纯 Python 脚本,可以简单地复制并粘贴到 Python 目录。然而,其他人需要,而且我认为这些通常是 C/C++ 代码的包装器或基于 C/C++ 代码的包装器,该代码是使用 setup.py “构建”和/或“编译”以生成一组新文件的。

我的问题是关于第二种类型的模块/包。为什么必须编译它们,是否有特殊原因?分销商不能从一开始就提供所有文件吗?

我问的原因是因为我希望将此类基于 C++ 的包作为我自己的包的一部分进行分发,这样用户就不必担心自己安装依赖项,也不必担心编译等问题. 我一直想知道为什么模块分发者不只包含依赖项而不是要求用户自己安装它们。

我怀疑答案可能是因为这些额外文件必须以特定方式写入,具体取决于计算机的操作系统类型,以及它是 32 位还是 64 位。这是否意味着分发已编译的文件将起作用,但前提是用户具有与编译文件的操作系统和位系统相同的特定操作系统和位系统。

无论如何,很想知道答案。

最佳答案

为什么软件包不包含依赖项:许可证。您不能只添加其他人的代码,无论是否编译,而不询问此人/公司,甚至不支付费用。

在 Python 中,您所说的这些构建模块是 Python Extensions。它们通常用于提高性能或访问 Python 中没有的低级功能。有时还包括专有功能。

关于python - 为什么有些 Python 模块必须是 "compiled"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21678893/

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