第38章- Python 蛋

Python eggs 是Python的较旧分发格式。新格式称为python 我们将在下一章中看到。egg文件基本上是具有不同扩展名的zip文件。 Python 可以直接从 egg 中导入。你需要 SetupTools 用 egg 包装。setuptools是通过命令行从pypi和其他源文件下载和安装python包的原始主流方法,类似于针对python的apt-get。有一种叫做 分配 它最终被合并回安装工具。我之所以提到它,是因为如果您在本书之外读了很多关于PythonEggs的文章,您可能会看到对那个fork的引用。

虽然egg格式正在被迁移,但是您仍然需要了解它,因为有许多包是使用此技术分发的。可能要过几年,每个人才能停止使用 egg 。让我们学习如何创造我们自己的!

创造一个 egg

您可以将egg视为源代码分发或Windows可执行文件的替代方案,但应该注意的是,对于纯Python egg,egg文件完全是跨平台的。我们将了解如何使用在前面的模块和包章节中创建的包创建自己的 egg 。要开始创建 egg ,您需要创建一个新文件夹并将 我的数学 文件夹。然后创建一个 setup.py 将父目录中的文件保存到mymath,内容如下:

from setuptools import setup, find_packages

setup(
    name = "mymath",
    version = "0.1",
    packages = find_packages()
    )

python有自己的包,用于创建称为 迪斯妥尔 .但是,不要使用python的 distutils的设置 函数,我们正在使用 设置工具的设置 .我们也在使用设置工具' find_packages 函数,它将自动查找当前目录中的任何包并将其添加到egg中。要创建所述egg,需要从命令行运行以下命令:

c:\Python34\python.exe setup.py bdist_egg

这将生成大量输出,但完成后,您将看到有三个新文件夹: 建造distmymath.egg-info .我们唯一关心的是 dist 找到 egg 文件的文件夹, mymath-0.1-py3.4.egg .注意,在我的机器上,我强迫它运行在python 3.4上,这样它就可以在python的版本上创建 egg 。egg文件本身基本上是一个zip文件。如果将扩展名更改为“zip”,则可以查看它的内部并看到它有两个文件夹: 我的数学EGG-INFO .在这一点上,你应该能够指出 easy_install 在你的蛋在你的文件系统上,让它安装你的软件包。

总结

现在轮到你了。进入python包索引,找到一些要下载的纯python模块。然后试着用你在本章学到的技巧来制作 egg 。如果你想安装一个 egg ,你可以使用 easy_install .卸载 egg 有点难。您必须转到其安装位置,删除其安装的文件夹和/或egg文件,并从 easy-install.pth 文件。所有这些项目都可以在您的python中找到 site-packages 文件夹。