附录B 打包与分发
打包和分发Python代码可能是一个复杂且有时令人困惑的任务,特别是当项目有很多的依赖关系,或者涉及比直接Python代码更特殊的组件时。但是,在很多情况下,别人以标准方式访问你的代码非常简单,我们将在本节中看到如何使用标准的distutils
模块打包。distutils
的主要优点是它包含在Python标准库中。除了最简单的打包需求之外,你可能会想要查看一些设置工具,这些工具的功能超出了distutils
的功能。
distutils
模块允许你编写一个简单的Python脚本,该脚本知道如何将Python模块安装到任何Python的安装目录中,包括托管在一个虚拟环境中。按照惯例,这个脚本叫作setup.py
,它位于项目结构的顶层。你可以执行这个脚本进行实际的安装。
B.1 使用distutils
配置一个包
让我们来看一个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.