什么是Python蛋?

Bialecki 497 python egg

我是Python的新手,我只是想了解它的包是如何工作的.据推测,"鸡蛋"是某种包装机制,但是它们可以快速概述它们扮演的角色,也可能是一些关于它们为什么有用以及如何创建它们的信息?

小智.. 499

注意:鸡蛋包装已被Wheel包装取代.

.jarJava中的文件相同的概念,它是一个.zip重命名了一些元数据文件的文件.egg,用于将代码分发为bundle.

具体来说:Python Eggs的内部结构

"Python egg"是一个逻辑结构,体现了Python项目特定版本的发布,包括其代码,资源和元数据.有多种格式可用于物理编码Python egg,其他格式可以开发.然而,Python egg的一个关键原则是它们应该是可发现的和可导入的.也就是说,Python应用程序应该可以轻松有效地找出系统中存在的蛋,并确保所需的蛋的内容是可导入的.

.egg格式非常适合分发和代码的轻松卸载或升级,因为项目基本上是自包含在单个目录或文件中,与任何其他项目的代码或资源无关.它还可以同时安装多个版本的项目,以便各个程序可以选择他们希望使用的版本.


kmario23.. 70

.egg文件是Python包的分发格式.它只是源代码分发或Windows的替代品exe.但请注意,对于纯文件Python,该.egg文件完全是跨平台的.

.egg文件本身基本上是一个.zip文件.如果将扩展名更改为" zip",则可以看到它将在归档文件中包含文件夹.

此外,如果您有一个.egg文件,则可以使用它将其作为包安装easy_install

示例:要.egg为目录创建一个文件,说明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,distmymath.egg-info.我们关心的唯一文件夹是dist文件夹,你可以找到你的.egg文件,mymath-0.1-py3.5.egg你的默认python(安装)版本号(我的这里:3.5)

资料来源:Python图书博客