Python 蛋是什么?
- 2025-02-05 13:23:00
- admin 原创
- 87
问题描述:
我想了解 Python 包的工作原理。大概eggs
是某种打包机制,但如何快速概述它们的作用,以及它们为何有用以及如何创建它们?
解决方案 1:
注:鸡蛋包装已经被轮式包装取代。
与 Java 中的文件概念相同.jar
,它是一个.zip
重命名了一些元数据文件的文件.egg
,用于将代码作为包分发。
具体来说:蟒蛇蛋的内部结构
“Python egg” 是体现 Python 项目特定版本发布的逻辑结构,包括其代码、资源和元数据。有多种格式可用于对 Python egg 进行物理编码,还可以开发其他格式。但是,Python egg 的一个关键原则是它们应该是可发现和可导入的。也就是说,Python 应用程序应该能够轻松高效地找出系统中存在哪些 egg,并确保所需的 egg 内容是可导入的。
该
.egg
格式非常适合分发和轻松卸载或升级代码,因为项目本质上是独立于单个目录或文件中的,不会与任何其他项目的代码或资源混合。它还可以同时安装项目的多个版本,以便各个程序可以选择他们希望使用的版本。
解决方案 2:
该.egg
文件是 Python 软件包的分发格式。它只是源代码分发或 Windows 的替代方案exe
。但请注意,对于纯Python
,该.egg
文件是完全跨平台的。
该.egg
文件本身本质上是一个.zip
文件。如果你将扩展名改为“ zip
”,你会看到它在存档里面会有文件夹。
另外,如果你有一个.egg
文件,你可以使用以下命令将其作为包安装easy_install
示例:要.egg
为目录 say 创建文件,mymath
而该目录本身可能包含多个 python 脚本,请执行以下步骤:
# setup.py
from setuptools import setup, find_packages
setup(
name = "mymath",
version = "0.1",
packages = find_packages()
)
然后,从终端执行:
$ python setup.py bdist_egg
这将生成大量输出,但完成后,您会看到有三个新文件夹:build、dist和mymath.egg-info。我们关心的唯一文件夹是dist文件夹,您可以在其中找到.egg
文件,mymath-0.1-py3.5.egg
其中包含您的默认 python(安装)版本号(我的版本号为:3.5)
来源:Python 库博客
解决方案 3:
免责声明:egg 是 Python 包的一种废弃格式,使用 egg 的工具已不复存在。
egg 是一个 Python 包。它是一个包含 Python 源文件和/或编译库的 zip 存档。
该格式没有明确指定它必须包含什么或者如何为不同版本的 Python 和不同的操作系统制作包,这是它被替换的原因之一。
该格式出现于 2004 年左右,一直使用到 2010 年代中期,现已完全被wheels
和取代pip install
。
Eggs 是通过命令安装的easy_install
。该命令已在 setuptools v58.3(2021 年)中被删除。您不能再使用 eggs。
如果您看到任何提及easy_install
或的内容egg
,无论是任何堆栈溢出答案还是教程,它都已经过时了。
推荐这个较长的答案https://stackoverflow.com/a/68897551/5994461,以深入了解 python 打包的历史。它介绍了 pip、wheels、eggs 等等。
更新:自 2023 年 7 月起,官方 Python 软件包存储库 pypi.org不再接受 .egg 软件包的上传。
解决方案 4:
“Egg” 是 Python 相关项目的单文件可导入分发格式。
“Python 蛋的快速指南”指出“蛋之于 Python 就像罐子之于 Java...”
鸡蛋实际上比罐子更丰富;它们包含有趣的元数据,例如许可细节、发布依赖关系等。
扫码咨询,免费领取项目管理大礼包!