根据 2023 年 Stackoverflow 调查,Python 是第三大最常用的编程语言。 这种通用用途可用于数据科学、网络开发、机器学习、软件工程和科学计算。
Python 包是您在学习 Python 语言并与之交互时会遇到的术语之一。 什么是 Python 包?如何创建它们?
本文将;
- 定义Python包
- 解释Python包在编程中的重要性
- 演示如何创建 Python 包
- 演示如何使用和测试 Python 包
- 演示如何上传Python包
目录
什么是 Python 包?
Python 包是编程中必不可少的构建块。 如果没有包,开发人员可能会从头开始编写所有内容,从而使编程成为一个漫长而充满压力的过程。 Python 包是 Python 模块的集合,基本上是可重用代码的集合。
Python 中的模块是包含可导入其他 Python 程序的 Python 代码的文件。 要创建 Python 包,必须将代码存储在包含 __init__.py 文件的目录中。
一个 Python 包可以包含其他包(嵌套),并且在线提供了数千个 Python 包。 其中一些软件包是官方的,而另一些则不是。 大多数 Python 包都可以在 https://pypi.org/ 上找到。
Django 是一个 Python Web 框架,是可用于构建 Web 应用程序的包的示例。 Scikit-learn、PyTorch 和 TensorFlow 是机器学习领域流行的软件包。
Python 包的重要性
为什么不作为程序员从头开始创建一切呢? 我们需要Python包吗? 这些是 Python 包很重要的一些原因;
- 节省时间:Python 包使您可以访问预先编写的代码来解决常见问题。 每当您想要编写 Python 脚本时,您都可以使用 Python 包,而不是重新发明轮子。
- 使代码分发变得容易:协作在编程中非常常见。 您可以创建一个 Python 包,您的团队成员在协作项目时始终可以导入该包。
- 代码可重用性:如果您始终需要在 Python 程序中编写代码块,则可以将其打包并导入到您的应用程序中。
- 代码组织:Python 包允许您将代码组织成逻辑模块。 这种方法使您可以轻松阅读和维护 Python 代码。
如何创建你的第一个 Python 包
我们已经说过Python是一种通用语言。 作为程序员,您可以创建不同类型的包。
例如,您可以拥有一个自动执行某些任务的软件包、一个帮助您制定预算的软件包,甚至可以学习一门新语言。 但是,在开始创建第一个包之前,您需要以下内容:
先决条件;
- Python 安装在您的本地计算机上。 如果您使用 Linux,则默认情况下 Python 会随操作系统一起安装。 您可以使用此命令 python –version 或 python3 –version 检查Python是否已安装。 如果安装了 Python,您将在终端上看到类似的内容;
如果您没有 Python,可以从 https://www.python.org/downloads/ 下载。
- 对 Python 的理解。 您需要了解如何编写 Python 类、模块和函数。
- 包管理器。 我们将使用 pip 进行此演示。 您可以使用此命令检查 pip 是否安装;
pip --version
如果安装了,您将在终端上看到类似的内容。
根据您要安装的软件包的性质,要求可能会有所不同。
我将为此演示创建一个简单的 Python 包,用于检查数字是否为质数。 你可以跟随;
- 第一步:创建项目文件夹。 我将我的命名为 primechecker。
- 第二步:在 primechecker 文件夹中创建另一个文件夹并将其命名为 prime。
- 第三步:在第二步中创建的目录中创建一个文件,并将其命名为 prime.py。 您可以使用此命令组合这三个步骤;
mkdir primechecker && cd primechecker && mkdir prime && cd prime && touch prime.py
- 第三步:在代码编辑器中打开您的项目。 然后,您可以将此代码添加到 prime.py 文件中,以检查数字是否为质数;
def is_prime(number): if number < 2: return False for i in range(2, int(number ** 0.5) + 1): if number % i == 0: return False return True
- 第四步:在prime文件夹中,创建一个新文件并将其命名为__init__.py。 该文件使 Python 将我们创建的项目文件夹识别为包。
您可以使用此命令;
touch prime/__init__.py
- 第五步:测试您的代码。 我们可以在根文件夹内的 test.py 文件中创建一个脚本来检查数字是否为素数。 导航回主文件夹并使用此命令;
touch test.py
然后您可以将此代码添加到该文件中;
from prime.prime import is_prime number = int(input("Enter a number: ")) result = is_prime(number) print(f"{number} is prime: {result}")
运行此命令来检查您的代码;
python3 test.py
您现在可以输入一个数字并检查它是否是质数。
例如,我检查了 5 和 1 是否是素数并得到以下结果;
如何在线上传包
您可以在 PyPI(Python 包索引)上托管您创建的包。 这是一个包含数千个 Python 包的中央存储库。 如果您没有帐户,请前往 https://pypi.org/ 并创建一个帐户。
您现在可以按照以下步骤在线上传您的包裹;
- 步骤1:在根文件夹中创建一个新文件(我的是primechecker)并将其命名为setup.py。
- 步骤 2:更改 setup.py 文件的内容以包含有关要上传的包的信息。
该文件的代码应如下所示;
from setuptools import setup, find_packages setup( name="primechecker", version='1.0.0', author="Your Name", author_email="[email protected]", description='A package for checking prime numbers', packages=find_packages(), )
更改名称、作者、作者电子邮件和描述以适合您的包详细信息。
- 第 3 步:构建您的包。 仍在根文件夹内运行此命令;
python3 setup.py sdist bdist_wheel
如果检查项目文件夹,您可以在根文件夹中看到两个新文件夹(build 和 dist)。
- 第四步:安装麻绳。 这是将包上传到 PyPI 所需的包。
使用此命令;
pip install twine
- 第5步:上传包
使用此命令;
twine upload dist/*
系统将提示您输入用户名和密码。 如果您的包的名称尚未被占用,该包将在线发布,并且您将在终端上获得一个链接。
您刚刚发布的软件包将向公众开放。 任何想要使用该软件包的人都可以使用 pip 下载它。
例如,我发布的包可以下载为:
pip install primechecker==1.0.0.
创建 Python 包的最佳实践
- 注意 Python 打包标准:尽管您可以自由决定要创建的包类型,但请始终记住 Python 包有您应该遵守的标准。 在开始编写代码之前,请在 https://packaging.python.org/ 上检查这些标准。
- 在部署之前测试您的包:错误在编程中很常见。 创建用于生成自动化测试的脚本,尤其是在构建大型包时。 这种方法可确保您上传的包没有错误。
- 版本控制:正确的包应该遵循语义版本控制。 我在演示中创建的包的数字为 1.0.0。 第一位(1)是主要版本,第二位(0)是次要版本,最后一位是补丁。
- 指定所有依赖项:根据您的需要,您的包内可能有各种依赖项或其他包。 您应该在上传过程中在包的描述中提及所有依赖项。 您可以使用 setuptools 或 Poetry 等工具来添加和管理这些依赖项。
- 使用版本控制:编程是一个持续的过程。 您可以不断升级或改进您的软件包以添加新功能或提高其效率。 您可能还想邀请贡献者。 您可以将包代码上传到 GitHub 或 GitLab 等平台,以使您的代码易于访问并允许协作。
- 记录您的代码:我们创建的包用于演示目的。 但是,如果您打算与公众或团队成员共享此类包,则必须生成指导用户的文档。 您可以使用 Pydoc 或 Sphinx 等工具来生成文档。
我还可以在哪里上传 Python 包?
尽管 Python Package Index (PyPI) 是 Python 包的官方存储库,但这并不意味着您被限制使用它。 确定将 Python 包上传到何处时需要考虑的一些因素包括文件大小、包的性质、所需的支持级别以及目标受众。
这些是您可以上传 Python 包的其他区域;
- GitHub:GitHub 是最大的代码托管平台。 您可以创建存储库并将 Python 包添加为 zip 文件以进行重新分发。
- Conda:Conda 是一个可用于 Python 包的包管理器。 这个平台在数据科学家中很有名。 在 Conda 上创建一个帐户并开始上传您的软件包以进行重新分发。
- PyPI Mirrors:有许多 PyPI Mirrors 镜像 PyPI 平台的内容。 选择适合您托管包裹需求的一种。
结论
您现在已经完成了创建 Python 包并在线发布它们的步骤。 我们的示例只是基本的,但您可以尝试并创建复杂的包。 但是,在构建 Python 包时,请始终创建正确的文件夹结构。