介绍
本实验将介绍 setup.py 脚本,它是使用传统 Distutils 库打包 Python 项目的基本组成部分。你将了解它的用途、结构以及如何使用它来使你的 Python 模块可安装。完成本实验后,你将创建一个基本的 setup.py 文件并使用它来安装一个简单的 Python 包。
引言
在这一步中,你将理解 setup.py 脚本在通过 Distutils 构建、分发和安装模块的所有活动中的核心作用。
setup 脚本是使用 Distutils 构建、分发和安装模块的核心。它的主要目的是向 Distutils 描述你的模块分发情况,以便对你的模块执行操作的各种命令能够正确执行。
setup.py 文件位于 Python 项目的核心位置。它描述了关于你项目的所有元数据(metadata)。虽然你可以添加许多字段来提供丰富的元数据,但只有三个是必需的:
name: 你的包的名称。如果你希望在 Python 包索引(PyPI)上发布你的包,这个名称必须是唯一的。version: 你包的当前版本。这有助于用户区分不同的发布版本。packages: 要包含在你的分发包中的所有 Python 包的列表。
一旦你有了 setup.py 文件,你就可以轻松地将 Python 包安装到你的环境中。推荐的方法是使用 pip 从当前目录安装包。在包含 setup.py 文件的同一目录下的终端中运行以下命令:
pip install .
此命令将处理模块的构建和安装过程,使其可以在其他 Python 脚本中被导入和使用。在下一步中,我们将创建一个 setup.py 文件并运行此命令。
示例
在这一步中,我们将回顾一个基本的 setup.py 脚本示例,并为我们的项目创建一个。此示例将包含必需的字段以及可选信息,例如许可证和从 README.txt 文件中读取的长描述。
首先,导航到为你准备好的项目目录。使用 IDE 左侧的文件浏览器查看 pythonCheatsheet 目录。在其中,你会发现一个 pipenv 子目录和一个 README.txt 文件。
现在,在 ~/project/pythonCheatsheet 目录下创建一个名为 setup.py 的新文件。点击文件浏览器中的 pythonCheatsheet 文件夹,然后点击“新建文件”图标,并将其命名为 setup.py。
将以下代码复制并粘贴到你新创建的 setup.py 文件中:
## setup.py: define package metadata for distribution
from distutils.core import setup
setup(
name='pythonCheatsheet', ## Package name (must be unique on PyPI)
version='0.1', ## Version number
packages=['pipenv',], ## List of packages to include
license='MIT', ## License type
long_description=open('README.txt').read(), ## Read description from file
)
我们来分解一下这个脚本:
from distutils.core import setup: 此行导入setup函数,它是脚本的主要入口点。name='pythonCheatsheet': 定义我们包的名称。version='0.1': 设置初始版本。packages=['pipenv',]: 告诉 Distutils 要包含的包位于pipenv目录中。license='MIT': 指定包分发的许可证类型。long_description=open('README.txt').read(): 读取README.txt的内容,为包提供详细描述。
setup.py 文件准备好后,通过点击 IDE 底部终端面板中的 + 图标打开一个终端。确保你的当前目录是 ~/project/pythonCheatsheet。你可以通过运行 cd ~/project/pythonCheatsheet 导航到该目录。
运行安装命令:
pip install .
你将在终端中看到 pip 构建和安装包的输出。输出将如下所示,最后是包已安装的确认信息:
Processing /home/labex/project/pythonCheatsheet
Building wheels for collected packages: pythonCheatsheet
Building wheel for pythonCheatsheet (setup.py) ... done
Created wheel for pythonCheatsheet: pythonCheatsheet-0.1-py3-none-any.whl
Stored in directory: /tmp/pip-wheel-xxxxx
Successfully built pythonCheatsheet
Installing collected packages: pythonCheatsheet
Successfully installed pythonCheatsheet-0.1
为确认安装成功,你可以使用 pip 列出已安装的包并筛选出你的新包:
pip list | grep pythonCheatsheet
你应该会看到你的包及其版本列出:
pythonCheatsheet 0.1
恭喜!你已成功创建了一个 setup.py 文件并安装了一个 Python 包。
总结
在这个实验(Lab)中,你学习了 setup.py 脚本在使用 Distutils 进行 Python 项目分发中的基本作用。你了解了包所需的关键元数据(metadata)字段:name、version 和 packages。最后,你创建了一个实用的 setup.py 文件,包含了如 license 和 long_description 等附加元数据,并使用 pip install . 命令成功地将你的包安装到本地环境中。你现在具备了使你自己的 Python 项目可分发的基本知识。



