打包
在本节中,您将
- 将您的模块放在一个可安装的包中。
- 使用版本控制。
- 安装和使用该包。
有关打包的更多信息,请参阅我们的 打包指南。
创建最小的可安装 Python 包
让我们创建一个包含此函数的 Python 包。
首先,为您的软件包创建一个新目录,名为 example
,并进入该目录
mkdir example
cd example
您应该立即在此目录中初始化一个空的 Git 存储库;如果您需要复习如何使用 Git 进行版本控制,请查看 Software Carpentry 的课程 使用 Git 进行版本控制。您应该在后续操作中定期提交更改。本教程在此之后不会明确提醒您提交工作。
git init
在包目录 example
中,为源代码创建子目录 src
(“源”)和 src/example
。
mkdir src
mkdir src/example
在 src/example/__init__.py
中创建一个文件。这就是将目录识别为 Python 中的“包”的内容。它可以保持为空。
touch src/example/__init__.py
将 refraction.py
(我们上一节中的代码)放在它旁边,位于 src/example/refraction.py
。
您的包所需的最后一个元素是 pyproject.toml
文件,放置在根目录中。
touch pyproject.toml
填写最少需要的元数据,包括包名、版本和一些与如何安装它相关的选项,您可以照原样复制。
# contents of pyproject.toml
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "example"
version = "0.1.0"
此处给出的包名 example
与包含我们项目代码的目录包匹配。我们选择 0.1.0
作为此包的起始版本;您将在后面的部分中看到更多关于版本控制的信息,以及如何在不手动在此处编写版本号的情况下指定版本号。
此时,您的包的文件结构将如下所示
.
├── pyproject.toml
├── src
│ └── example
│ ├── __init__.py
│ └── refraction.py
安装和使用您的包
现在您的包具有必要的元素,您可以将其安装到您的虚拟环境中(该环境应该已经处于活动状态)。从项目的顶层目录中,输入
pip install -e .
-e
标志告诉 pip 以可编辑模式安装,这意味着您可以在测试时继续在计算机上开发您的包,而无需每次都重新安装它。
然后,在 Python shell 或 Jupyter Notebook 中,导入您的包并调用该函数。
>>> from example.refraction import snell
>>> import numpy as np
>>> snell(np.pi / 4, 1.00, 1.33)
1.2239576240104186
可以使用 help()
查看文档字符串。
>>> help(snell)
或者,在 Jupyter 或 Python 中,使用 ?
作为快捷方式。
In [1]: snell?
有关打包的更多信息,还可以参阅我们的 打包指南。