我是Python的新手,我只是想了解它的包是如何工作的。假定eggs是某种打包机制,但是如何快速概述它们所扮演的角色,以及关于它们为什么有用以及如何创建它们的一些信息?
eggs
# EYZ0 < / >
与Java中的.jar文件概念相同,它是一个.zip文件,其中一些元数据文件重命名为.egg,用于将代码作为包分发。
.jar
.zip
.egg
具体来说:Python Eggs的内部结构
“Python卵”是一个逻辑结构,体现了一个释放 Python项目的特定版本,包括它的代码、资源、 和元数据。可以使用多种格式 对Python卵进行物理编码,然后可以开发其他的。然而, Python卵的一个关键原则是它们应该是可发现的 可输入的。也就是说,Python应用程序应该能够 轻松有效地查找系统中存在哪些卵,以及 . . . .egg格式非常适合于分发和简单 卸载或升级代码,因为项目本质上是 自包含在单个目录或文件中,不与任何目录或文件混合 其他项目的代码或资源。这也使它成为可能 同时安装一个项目的多个版本,这样 各个程序可以选择他们想要使用的版本
“Python卵”是一个逻辑结构,体现了一个释放 Python项目的特定版本,包括它的代码、资源、 和元数据。可以使用多种格式 对Python卵进行物理编码,然后可以开发其他的。然而, Python卵的一个关键原则是它们应该是可发现的 可输入的。也就是说,Python应用程序应该能够 轻松有效地查找系统中存在哪些卵,以及
.egg文件是Python包的分发格式。它只是源代码发行版或Windows exe的替代品。但是请注意,对于纯Python, .egg文件是完全跨平台的。
exe
Python
.egg文件本身本质上是一个.zip文件。如果您将扩展名更改为“zip”,您可以看到它将在存档中有文件夹。
zip
此外,如果您有.egg文件,您可以使用easy_install将其作为包安装
easy_install
mymath
# setup.py from setuptools import setup, find_packages setup( name = "mymath", version = "0.1", packages = find_packages() )
然后,从终端做:
$ python setup.py bdist_egg
这将生成大量输出,但当它完成时,你会看到你有三个新文件夹:构建, 经销和mymath.egg-info。我们唯一关心的文件夹是经销文件夹,在那里你会发现你的.egg文件,mymath-0.1-py3.5.egg与你的默认python(安装)版本号(我这里:3.5)
mymath-0.1-py3.5.egg
来源:# EYZ0
“Egg”是用于python相关项目的单文件可导入分发格式。
《Python卵快速指南》注意到“鸡蛋之于python,就像罐子之于Java……” . #
鸡蛋实际上比罐子更丰富;它们包含有趣的元数据,如许可细节、发布依赖项等。
声明:egg是一种废弃的python格式包,使用eggs的工具已不复存在。
egg是一个python包。它是一个压缩文件,包含python源文件和/或编译的库。
格式没有很好地规定它必须包含什么,或者如何为不同版本的python和不同的操作系统制作包,这是它被替换的原因之一。
该格式出现在2004年左右,一直使用到2010年代中期,现在完全被wheels和pip install所取代。
wheels
pip install
通过命令easy_install安装鸡蛋。该命令在setuptools v58.3(2021年)中被移除。你不能再用鸡蛋了。
如果你看到任何东西提到easy_install或egg,无论是任何堆栈溢出的答案或教程,它都是严重过时的。
egg
推荐这个更长的回答https://stackoverflow.com/a/68897551/5994461,了解python打包的深入历史。它涉及到pip,车轮,鸡蛋和更多的东西。