Python 包

2025年8月6日 | 阅读 7 分钟

Python 包可以定义为包含不同库以执行各种任务的容器。包通过将相关的模块分组到目录中来组织程序。例如,我们可以在我们的 Python 程序中导入 math 包,并使用它的 cbrt() 或 sqrt() 函数来查找任何数字的立方根或平方根。Python 包在大型项目中被广泛使用,因为它们可以高效地管理和重用代码。Python 包具有灵活性,允许其功能在不同的 应用程序中轻松共享和分发。

包的组件

  • 模块: 模块是包含代码的单个 Python 文件(例如,math.py)。
  • 包:一个包含模块和 __init__.py 文件的目录。
  • 子包:嵌套在其他包中的包,用于更深层次的组织。

在 Python 中创建和访问包的步骤

  • 创建目录:第一步是创建一个目录。它将作为你的包的根文件夹。
  • 添加模块:将 Python 文件(模块)添加到目录中,每个文件代表特定的功能。
  • 包含 __init__.py:将一个 '__init__.py' 文件(可以为空)添加到目录中,以将其标记为包。
  • 添加子包(可选):创建带有自己的 __init__.py 文件的子目录来表示子包。
  • 导入模块:使用点符号导入,例如:from mypackage.module1 import greet

从包中导入模块

我们可以使用点(.)运算符从包中导入任何模块。

例如,如果我们想从 Game.Config 包中导入 settings 模块,我们可以写出以下语法:

语法

如果模块有一个名为 select_difficulty() 的函数,我们可以通过完整路径像这样调用它:

语法

在 Python 中组织包

以下是展示如何在 Python 中组织包的文件夹结构:

文件夹结构

现在让我们看看这些文件的内容:

文件:calculator.py

文件:basic/add.py

文件:basic/sub.py

类似地,这对于乘法、除法、立方、平方以及更多操作也同样适用。

如何在 Python 中使用这些包?

我们现在将导入创建的包并在以下示例中使用它们。

示例

输出

Calculation will begin...
The sum of two numbers: 8
The difference of two numbers: 6

按类别划分的流行 Python 包

在本节中,我们将探讨开发人员日常 Python 编码中最常用的 Python 包。

Web 框架

无论您是想开发一个简单的静态网站还是带有高级 API 的高端电子商务网站,Python 都为您的所有需求提供了各种框架。

  • Flask它是一个简单灵活的工具,用于小型项目。
  • Django一个完整的设置,有助于更快地构建网站。它拥有现成的链接、数据库和用户登录工具。
  • FastAPI:用于创建快速现代的 API。它易于使用,甚至能显示自动生成的文档。
  • Pyramid, Bottle, CherryPy, Tornado:所有这些工具都灵活且快速。适用于小型和大型应用程序,并提供用于 Web 处理的便捷功能。每个都有其自身的优势,具体取决于您的构建内容。
  • Web2py:Web2py 通常由开发人员用于开发安全、数据库驱动的敏捷 Web 开发项目。它是一个免费的开源 Web 框架。

人工智能与机器学习

在人工智能和机器学习方面,Python 起着至关重要的作用。它提供了数据处理、分析和构建人工智能及机器学习模型所需的各种工具和功能。机器学习工具如下:

  • NumPyPandasSciPy – 这些是开源 Python 库,提供用于数据处理和分析的高级数学算法集合。
  • Scikit-learn, XGBoost – 这些是免费开源的 Python 库,提供机器学习工具。
  • TensorFlow, PyTorch, Keras – 这些框架广泛用于深度学习。它是一个开源的端到端平台,为机器学习任务提供高级和低级 API。
  • spaCy, NLTK, TextBlob – 这些是开源 Python 库,提供大规模的自然语言处理能力。
  • Fastai, Transformers, AllenNLP – 这些框架被 Python 开发人员广泛用于处理高级机器学习和自然语言处理。

数据可视化

Python 为数据可视化提供了专门的框架。数据分析师使用这些框架来设计和增强其数据的视觉外观。各种框架如下:

  • Matplotlib、Seaborn – 它包含各种方法和函数,用于以多种格式可视化数据,创建高质量的可视化图表。
  • Plotly, Bokeh, Altair – 这些库用于创建交互式和现代的 Web 图。
  • Dash, Pygal, Plotnine – 这些框架用于构建方便且交互式的数据仪表板。

计算机视觉

计算机视觉是 Python 的现代进步,它帮助用户从图像和视频中提取数据。Python 提供了用于图像处理、滤波和特征检测的广泛库。

  • OpenCV, scikit-image – 这两个包都包含用于图像处理的算法集合。
  • Torch, TensorFlow, ImageAI – 这些是开源的 Python 库,用于构建嵌入了深度学习和人工智能视觉功能的应用程序。
  • Dlib, Mahotas, Theano – Dilib、Mahotas 和 Theano 是不同的 Python 库,用于特定任务,特别是在计算机视觉和机器学习领域。

GUI 开发

Python 中的图形用户界面或 GUI 开发有助于开发具有高级视觉元素的应用程序。使用它们,用户可以与应用程序交互,因为它们提供了按钮、文本框和菜单,而不仅仅是使用文本命令。

  • Tkinter – Tkinter 是一个标准的 Python GUI 工具包,用于创建具有图形界面的桌面应用程序,提供按钮、标签和输入字段等小部件。它易于使用,预装在大多数 Python 发行版中,并且很适合简单的桌面应用程序。
  • PyQt5, PySide – 这些是 Python 库框架,用于创建具有图形用户界面的应用程序框架。
  • Kivy, PySimpleGUI – 它们是开源的 Python 库,用于开发多点触控、跨平台应用程序,这些应用程序可以在不同的操作系统平台上运行。
  • NiceGUI, PyGTK – 这些框架允许用户创建干净、简单的 UI,以便您可以轻松地处理各种计算机视觉任务。

网络抓取与自动化

网络抓取和自动化是当今的必需品。在线上有大量数据可用。Python 允许灵活地获取这些数据并在网上进行自动化。

  • Requests, urllib3 – 这两个库都用于 Python 中的 HTTP 请求。两者之间的唯一区别是 Requests 处理复杂的 HTTP 请求,而 urllib3 处理低级 HTTP 客户端请求。
  • BeautifulSoup, Lxml – 两者都是强大的库,用于解析和提取 HTML 和 XML 文档,主要是网页。
  • Selenium, MechanicalSoup – MechanicalSoul 和 Selenium 是为自动化浏览器交互而设计的优秀工具。这两个库都用于导航网页和提取数据。
  • Schedule, Watchdog - 这些库用于 Python 中监控文件系统事件,并响应这些事件触发相应的操作。
  • PyAutoGUI – 该库允许 Python 开发人员自动化任务并控制鼠标和键盘。

游戏开发

Python 因其简洁性和不同的游戏库而被大多数开发人员选择用于游戏开发。它被用于设计 2D 游戏及其原型。著名的 Python 游戏开发库如下:

  • Pygame, Arcade, Pyglet – 这些库用于在 Python 中创建健壮的游戏应用程序。它提供了渲染游戏图形、处理输入的功能,适合新手和专业游戏开发者。
  • Panda3D, PyOpenGL – 这些工具用于在 Python 中集成 3D 图形。

结论

包是 Python 语言不可或缺的一部分。它们是编写用户友好且可重用 Python 代码的基础。无论您是想构建一个高端应用程序、自动化任务、执行网络抓取、开发游戏、深入研究 AI,还是需要数据可视化方面的帮助,Python 的内置库和包都能通过将相关功能分组到结构良好的目录中来帮助您保持组织性。

为了简化您的工作,Python 提供了一个丰富的内置包生态系统,旨在提升您的编程技能。因此,下次您开始任何大型项目时,请务必记住使用包。因为它们不仅仅是工具,它们是您保持代码整洁、可扩展且高效的秘密武器。

Python 包常见问题解答

1. 什么是 Python 包?

Python 包是一种将相关的 Python 模块组织到单个目录层次结构中的方法。一个包通常包含一个名为 __init__.py 的特殊文件,该文件将目录标记为包。

2. 模块和包有什么区别?

  • 模块:一个包含函数、类或变量的单个 Python 文件(.py)。
  • 包:一个包含多个模块和一个 __init__.py 文件的目录。

3. 我如何安装 Python 包?

您通常使用 Python 包安装程序 pip。

语法

示例

4. 我如何卸载 Python 包?

要卸载 Python 包,您可以使用以下命令:

语法

5. 我如何更新 Python 包?

您可以使用 --upgrade 来更新 Python 包,如以下语法所示:

语法