附录B 打包与分发

打包和分发Python代码可能是一个复杂且有时令人困惑的任务,特别是当项目有很多的依赖关系,或者涉及比直接Python代码更特殊的组件时。但是,在很多情况下,别人以标准方式访问你的代码非常简单,我们将在本节中看到如何使用标准的distutils模块打包。distutils的主要优点是它包含在Python标准库中。除了最简单的打包需求之外,你可能会想要查看一些设置工具,这些工具的功能超出了distutils的功能。

distutils模块允许你编写一个简单的Python脚本,该脚本知道如何将Python模块安装到任何Python的安装目录中,包括托管在一个虚拟环境中。按照惯例,这个脚本叫作setup.py,它位于项目结构的顶层。你可以执行这个脚本进行实际的安装。

让我们来看一个distutils的简单例子。我们将为在第11章编写的 palindrome模块创建一个基本的setup.py安装脚本。

要做的第一件事是创建一个目录来保存项目。该目录名为palindrome

$ mkdir palindrome
$ cd palindrome

在这个目录中放一份palindrome.py的副本:

"""palindrome.py - 检测回文数字""" import unittest def digits(x): """将整数转换为数字列表。 Args: x: 我们想要的数字。 Returns: 数字的列表,按照"x"的顺序排列。 >>> digits(4586378) [4, 5, 8, 6, 3, 7, 8] """ digs = [] while x != 0: div, mod = divmod(x, 10) digs.append(mod) ...

Get Python实用技能学习指南 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.