“sdist”.tar.gz 发行版和 python Egg 有什么区别?

2024-04-29

我有一点困惑。似乎有两种不同类型的 Python 包,源代码发行版 (setup.py sdist) 和 Egg 发行版 (setup.py bdist_egg)。

两者似乎只是具有相同数据(Python 源文件)的档案。一个区别是pip最推荐的包管理器,是无法安装eggs的。

两者之间有什么区别?分发包裹的“方式”是什么?

(注意,我不想通过 PyPI 分发我的包,但我想使用包管理器从 PyPI 获取我的依赖项)


setup.py sdist创建一个来源分布:它包含 setup.py、模块/脚本的源文件(.py 文件或二进制模块的 .c/.cpp)、数据文件等。结果是一个存档,然后可用于重新编译上的所有内容任何平台。

setup.py bdist (and bdist_*)创建一个构建分布:它包括 .pyc 文件、.so/.dll/.dylib(二进制模块)、.exe(如果使用)py2exe在 Windows 上,您的数据文件...但没有 setup.py。结果是特定于平台的存档(例如linux-x86_64)和 Python 版本,只需将其解压到文件系统的根目录即可安装(可执行文件位于 /usr/bin (或等效文件)中,数据文件位于 /usr/share 中,模块位于 /usr/lib 中/pythonX.X/site-packages/...)。您甚至可以构建可以使用包管理器直接安装的 rpm 存档。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“sdist”.tar.gz 发行版和 python Egg 有什么区别? 的相关文章

随机推荐