gpt4 book ai didi

python - 在带有 setup.py 的简单目录上使用 Python 打包 *.egg 格式的优点和缺点是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 15:22:50 25 4
gpt4 key购买 nike

当我发布一个程序时,我通常只是创建一个setup.py 并将其放在pypi 上。它可以用 pip 安装,我可以随时轻松地与他人分享。它对我有用,而且显然对很多人有用。

我看到了制作 exe、deb 或 rmp 以方便系统管理员的好处。

但我真的看不出使用鸡蛋有什么意义。你能告诉我我能从中得到什么吗?

我也曾经读到鸡蛋有缺点,但我找不到这篇文章了。您能否向我描述一下使用这种打包格式会导致哪些问题?

请注意我确实看到了this question ,但答案也适用于带有 setup.py 的简单目录。它没有告诉我鸡蛋相对于更简单格式的好处。

最佳答案

鸡蛋与特定的体系结构和 python 版本相关联,并且在 Python 3.3 之前,如果鸡蛋包含 C 扩展,甚至内部 Unicode 表示大小(UCS2 与 UCS4)。

不幸的是,鸡蛋元数据中没有捕获到后者的差异;一个 egg 文件名包含体系结构和 python 版本(major.minor,所以是 2.4 或 3.1)但省略了 unicode 字节大小。

因此,鸡蛋不是很便携。另一方面,.tgz.zip 发行版(希望)与平台无关。你的安装工具,无论是 easy_installpipbuildout 还是其他什么,都知道如何为你编译 python 包分发到 egg 中,所以您通常避免一起分发 .egg 文件。

唯一的异常(exception)是 Windows,大多数人都缺少编译 C 扩展的工具链。由于 Python 的 Windows 分发版默认为 UCS2,因此您通常可以安全地分发 Windows .egg 构建的具有 C 扩展的包,以便于通过自动化工具进行安装。

如果您使用 setup.py 脚本来创建发行版,创建一个仅包含源代码的包以上传到 PyPI 是微不足道的。我可以推荐 Python Packaging User Guide获取更多信息。

关于python - 在带有 setup.py 的简单目录上使用 Python 打包 *.egg 格式的优点和缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12278091/

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