如何创建 Python 包发行版

PythonPythonBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本教程中,我们将指导你完成创建和分发自己的 Python 包的过程。无论你开发了一个实用的库、一组工具还是一个新应用程序,将你的 Python 代码打包并与他人共享,都可以为 Python 社区做出有价值的贡献。完成本教程后,你将掌握创建和分发自己的 Python 包所需的知识和技能。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/FileHandlingGroup(["File Handling"]) python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/creating_modules("Creating Modules") python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/FileHandlingGroup -.-> python/file_opening_closing("Opening and Closing Files") python/FileHandlingGroup -.-> python/file_reading_writing("Reading and Writing Files") python/FileHandlingGroup -.-> python/file_operations("File Operations") python/FileHandlingGroup -.-> python/with_statement("Using with Statement") subgraph Lab Skills python/importing_modules -.-> lab-397970{{"如何创建 Python 包发行版"}} python/creating_modules -.-> lab-397970{{"如何创建 Python 包发行版"}} python/using_packages -.-> lab-397970{{"如何创建 Python 包发行版"}} python/standard_libraries -.-> lab-397970{{"如何创建 Python 包发行版"}} python/file_opening_closing -.-> lab-397970{{"如何创建 Python 包发行版"}} python/file_reading_writing -.-> lab-397970{{"如何创建 Python 包发行版"}} python/file_operations -.-> lab-397970{{"如何创建 Python 包发行版"}} python/with_statement -.-> lab-397970{{"如何创建 Python 包发行版"}} end

理解 Python 包

Python 包是 Python 编程语言中的一个基本概念。包是 Python 模块的集合,可用于组织和分发 Python 代码。包提供了一种构建 Python 代码结构的方式,使其更易于管理和复用。

什么是 Python 包?

Python 包是一个包含一个或多个 Python 模块的目录。该目录必须包含一个名为 __init__.py 的特殊文件,它可以为空,也可以包含 Python 代码。此文件告诉 Python 该目录是一个包,并且它可以作为模块被导入。

使用 Python 包的好处

使用 Python 包有以下几个好处:

  1. 模块化:包允许你将代码组织成逻辑单元,使其更易于管理和维护。
  2. 可复用性:包可以在不同项目之间共享和复用,促进代码复用和协作。
  3. 命名空间:包提供了一种为模块创建唯一名称的方式,降低了命名冲突的风险。
  4. 依赖管理:包可以有自己的依赖项,这些依赖项可以与包一起管理和分发。

Python 包的结构剖析

一个典型的 Python 包结构如下所示:

my_package/
    __init__.py
    module1.py
    module2.py
    subpackage/
        __init__.py
        submodule1.py
        submodule2.py

__init__.py 文件是使目录成为 Python 包的关键。它可用于执行包级别的初始化,例如导入模块或定义包级别的变量。

导入 Python 包

要使用 Python 包,可以使用 import 语句导入它。例如,要从包中导入一个模块,可以使用以下语法:

import my_package.module1
from my_package import module2
from my_package.subpackage import submodule1

包允许你以结构化和模块化的方式组织 Python 代码,从而更轻松地开发、维护和分发你的应用程序。

构建 Python 包

构建 Python 包需要创建必要的目录结构和文件,以便将你的代码作为可复用的包进行分发。以下是关于如何构建 Python 包的分步指南:

步骤 1:创建包目录

首先,为你的包创建一个目录。这个目录将包含你的包的模块和必要的文件。例如,让我们创建一个名为 my_package 的包:

mkdir my_package
cd my_package

步骤 2:创建 __init__.py 文件

my_package 目录内,创建一个名为 __init__.py 的文件。Python 需要这个文件来将该目录识别为一个包。

touch __init__.py

步骤 3:向包中添加模块

接下来,创建将成为你的包一部分的 Python 模块。例如,让我们创建两个模块:module1.pymodule2.py

touch module1.py
touch module2.py

步骤 4:实现包的功能

打开模块文件并添加你的 Python 代码。例如,在 module1.py 中,你可能有:

def function1():
    print("This is function1 from module1.")

而在 module2.py 中,你可能有:

def function2():
    print("This is function2 from module2.")

步骤 5:自定义 __init__.py 文件

__init__.py 文件可用于执行包级别的初始化,或者从你的包中暴露特定的模块和函数。例如,你可以在 __init__.py 中添加以下内容:

from.module1 import function1
from.module2 import function2

__all__ = ['function1', 'function2']

这将允许用户直接从 my_package 包中导入 function1function2 函数。

步骤 6:在本地测试包

在分发你的包之前,在本地进行测试,以确保它按预期工作。你可以通过导航到 my_package 的父目录并尝试导入该包并使用其函数来做到这一点:

import my_package
my_package.function1()
my_package.function2()

通过遵循这些步骤,你已经成功构建了一个基本的 Python 包,其他开发者可以分发和使用它。

分发你的 Python 包

一旦你构建好了 Python 包,就可以将其分发出去,以便其他人能够安装和使用。分发 Python 包有几种方式,最常见的方法是将其上传到 Python 包索引(PyPI)。

为分发准备你的包

在分发包之前,你需要确保它的结构和打包方式正确。以下是关键步骤:

  1. 创建一个 setup.py 文件:此文件包含有关你的包的元数据,例如名称、版本、作者和描述。它还指定了依赖项和其他与包相关的信息。
  2. 创建一个 README 文件:此文件提供你的包的概述,包括安装说明、使用示例以及任何其他相关信息。
  3. 创建一个 LICENSE 文件:此文件指定你的包所依据的许可协议。

上传到 PyPI

分发 Python 包最常见的方式是将其上传到 Python 包索引(PyPI)。以下是操作方法:

  1. 创建一个 PyPI 账户:访问 PyPI 网站(https://pypi.org/)并创建一个账户。
  2. 安装必要的工具:你需要安装 setuptoolswheel 包,它们用于打包和上传你的 Python 包。
    pip install setuptools wheel
  3. 构建你的包:使用 setup.py 文件来构建你的包发行版。
    python setup.py sdist bdist_wheel
  4. 上传到 PyPI:使用 twine 工具将你的包上传到 PyPI。
    pip install twine
    twine upload dist/*
    系统会提示你输入 PyPI 用户名和密码。

安装你的包

一旦你的包上传到了 PyPI,用户就可以使用 pip 包管理器来安装它:

pip install my_package

这将安装你的包,并使其模块和函数可在其他 Python 项目中使用。

维护你的包

在分发你的包之后,你可能需要用修复漏洞、新功能或其他更改来更新它。要做到这一点,你可以遵循相同的流程,但要在 setup.py 文件中增加版本号。然后用户可以使用以下命令升级到新版本:

pip install --upgrade my_package

通过遵循这些步骤,你可以有效地分发你的 Python 包,并使其可供其他人使用和贡献。

总结

在这本全面的指南中,我们涵盖了创建和分发 Python 包的基本步骤。从理解 Python 包的基础知识到构建和打包你的代码,你现在已经掌握了与世界分享你的 Python 作品的知识。通过遵循这些最佳实践,你可以确保你的 Python 包易于他人访问、安装和维护。拥抱 Python 包分发的力量,让你的想法和创新触及更广泛的受众。