我注意到Python模块/包有两种类型。有些只是纯Python脚本,可以简单地复制并粘贴到Python目录中。然而其他人需要,我认为这些通常是C / C ++代码的包装或基于C / C ++代码,代码是用build.py“构建”和/或“编译”的,以生成一组新文件。
我的问题是关于第二类模块/包。为什么必须编译它们,是否有特殊原因呢?经销商难道不能从一开始就提供所有文件吗?
我问的原因是因为我希望将这些基于C ++的软件包作为我自己的软件包的一部分进行分发,这样用户就不必担心自己安装依赖项,而不必担心编译等我一直想知道为什么模块发行商不仅仅包含依赖项而不是要求用户自己安装它们。
我怀疑答案可能是bc那些额外的文件必须以特定的方式写入,具体取决于计算机的操作系统类型,以及是32位还是64位。这是否意味着分发已编译的文件将起作用,但前提是用户具有与编译文件的操作系统和位系统相同的特定操作系统和位系统。
无论如何,好奇地知道答案。
答案 0 :(得分:1)
为什么软件包不包含依赖项:许可证。你不能只是添加其他人的代码,无论是否编译,无需询问此人/公司甚至支付费用。
在Python中,您谈到的这些构建的模块是Python Extensions。它们通常用于提高性能或访问不在Python中的低级功能。有时也包括专有功能。