Python 蛋是什么?

2025-02-05 13:23:00
admin
原创
87
摘要:问题描述:我想了解 Python 包的工作原理。大概eggs是某种打包机制,但如何快速概述它们的作用,以及它们为何有用以及如何创建它们?解决方案 1:注:鸡蛋包装已经被轮式包装取代。与 Java 中的文件概念相同.jar,它是一个.zip重命名了一些元数据文件的文件.egg,用于将代码作为包分发。具体来说:蟒...

问题描述:

我想了解 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

这将生成大量输出,但完成后,您会看到有三个新文件夹:builddistmymath.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...”

鸡蛋实际上比罐子更丰富;它们包含有趣的元数据,例如许可细节、发布依赖关系等。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2941  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1803  
  PLM(产品生命周期管理)系统在企业的产品研发、生产与管理过程中扮演着至关重要的角色。然而,在实际运行中,资源冲突是经常会遇到的难题。资源冲突可能导致项目进度延迟、成本增加以及产品质量下降等一系列问题,严重影响企业的效益与竞争力。因此,如何有效应对PLM系统中的资源冲突,成为众多企业关注的焦点。接下来,我们将详细探讨5...
plm项目管理系统   31  
  敏捷项目管理与产品生命周期管理(PLM)的融合,正成为企业在复杂多变的市场环境中提升研发效率、增强竞争力的关键举措。随着技术的飞速发展和市场需求的快速更迭,传统的研发流程面临着诸多挑战,而将敏捷项目管理理念融入PLM,有望在2025年实现研发流程的深度优化,为企业创造更大的价值。理解敏捷项目管理与PLM的核心概念敏捷项...
plm项目   31  
  模块化设计在现代产品开发中扮演着至关重要的角色,它能够提升产品开发效率、降低成本、增强产品的可维护性与可扩展性。而产品生命周期管理(PLM)系统作为整合产品全生命周期信息的关键平台,对模块化设计有着强大的支持能力。随着技术的不断发展,到 2025 年,PLM 系统在支持模块化设计方面将有一系列令人瞩目的技术实践。数字化...
plm软件   28  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用