Python 速成课程是免费的,将在 dev.to 上发布。我会每两天左右发表一篇新文章。为了不错过任何东西,您可以在 Twitter 上关注我:关注@EricLeCodeur

模块和包

创建自己的模块

到目前为止,我们已经使用了 Python 中已经包含的几个模块。现在是时候创建我们自己的模块了。

当我们创建 Python 应用程序时,我们不会将所有代码放在一个文件中。对于可读性和可重用性的问题,可以创建我们自己的模块。

什么是 Python 模块?

Python 将任何带有“.py”扩展名的文件视为一个模块。这是您的应用程序可能拥有的文件结构

main.py
utilities.py

进入全屏模式 退出全屏模式

该应用程序有两个模块。主模块“main.py”和另一个模块“utilities.py”

以下是他们的内容示例:

实用程序.py

def display_message(message):
    print("******************")
    print(" " + message)
    print("******************\n")

进入全屏模式 退出全屏模式

该文件包含显示消息的 display_message() 函数

主文件

import utilities

utilities.display_message("Hello World")

进入全屏模式 退出全屏模式

这里的“import”语句允许您在当前文件中包含和使用“utilities.py”文件中的代码。

请注意,要调用 display_message() 函数,您必须使用模块的名称,即:utilities.display_message()

如果我们运行main.py我们得到:

******************
 Hello World
******************

进入全屏模式 退出全屏模式

语法替代

可以以另一种方式使用“import”语句

主文件

from utilities import display_message

display_message("Hello World")

进入全屏模式 退出全屏模式

“from”语句允许您只导入“utilities.py”文件的一部分。在这种情况下,只会导入 display_message() 函数。

结果将是相同的,只是函数调用不再需要模块名称。

用另一个模块名导入

在导入期间,可以修改模块的名称

import utilities as utils

utils.display_message("Hello World")

进入全屏模式 退出全屏模式

“as”语句允许您修改将用于调用的名称。

将多个模块组合在一个包中

当我们构建一定规模的应用程序时,我们会有很多模块。其中一些模块可以组合在一起(在同一个文件夹下)以使应用程序更具逻辑性。

这是一个例子。假设我们有一个包含这些模块的应用程序

math_add.py
math_sub.py
message_info.py
message_log.py
message_error.py

进入全屏模式 退出全屏模式

这里我们的应用程序有 5 个模块。 2 条与数学和 3 条其他消息有关。

因此,使用以下文件夹结构拆分应用程序可能更有意义:

/math
    add.py
    sub.py

/message
    info.py
    log.py
    error.py

进入全屏模式 退出全屏模式

这里的结构更符合逻辑,因此更容易理解、维护和发展。

在 Python 中使用这个结构。我们必须通知 Python /math 和 /message 文件夹实际上是 Python 包。

“包”实际上是一个包含模块的简单文件夹。

要向 Python 表明一个文件夹是一个包,您必须创建一个名为__init__.py的空文件

/math
    __init__.py
    add.py
    sub.py

/message
    __init__.py
    info.py
    log.py
    error.py

进入全屏模式 退出全屏模式

如果文件夹中存在__init__.py文件,Python 会将其视为一个包。

在应用程序中使用包

要将这些包“导入”到您的应用程序代码中,您必须使用以下语法。

import math.add

进入全屏模式 退出全屏模式

在这里,Python 将提供包含在“math”包中的文件“add.py”的代码

使用社区创建的库

Python 的优势之一是其庞大的社区。

遇到问题并希望使用 Python 解决它?

为什么要重新发明轮子?成员很有可能已经遇到过这个问题,甚至更好的是他与社区分享了他的解决方案。

社区创建的包列在https://pypi.org/站点上,可以使用 PIP 应用程序安装在您的计算机上。

此应用程序允许您在您的机器上安装您选择的库。

验证PIP安装

从控制台,使用 PIP 模块启动 Python

python -m pip --version

ou

python3 -m pip --version

# pip 22.0.4 from /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/pip (python 3.10)

进入全屏模式 退出全屏模式

在这里,PIP 安装得很好。如果您有任何问题,请重新访问本课程开头的 Python 安装过程。

已安装并使用您的第一个包

python -m pip install emoji

ou

python3 -m pip install emoji

进入全屏模式 退出全屏模式

使用此命令,“表情符号”包现在已安装并可使用。

请注意,某些软件包依赖于其他软件包才能工作。 PIP 将安装请求的包以及其他必要的依赖项。

python3 - m pip list

Package    Version
---------- -------
emoji      1.7.0
pip        22.0.4
setuptools 58.1.0

进入全屏模式 退出全屏模式

PIP list 命令允许您显示计算机上安装的所有软件包的列表。

PIP默认安装最新版本

python3 -m pip uninstall emoji

python3 -m pip list

Package    Version
---------- -------
pip        22.0.4
setuptools 58.1.0

进入全屏模式 退出全屏模式

pip uninstall 命令卸载您机器上的“emoji”包。

“表情符号”包允许您将表情符号添加到终端中的打印消息中。

这是一个使用表情包的例子

import emoji

print(emoji.emojize('Python is :thumbs_up:'))

# Python is 👍

进入全屏模式 退出全屏模式

要使用安装您的软件包,您必须导入。

请注意,一些软件包具有在线文档,可告知您可用的功能以及如何使用它们。

你的机器上安装的包在哪里?

使用 PIP 安装的包安装在所有 Python 应用程序共享的中央文件夹中。

因此,一旦在您的计算机上安装了一个软件包,如果您需要它用于另一个应用程序,则无需重新安装它。

版本问题?

这种处理方式总有一天会导致版本级别的问题。例如,您的应用程序 1 将使用“emoji”版本 1.7 包,但您的应用程序 2 需要“表情符号”版本 1.8

如何避免版本问题?

为了避免此类问题,有一个解决方案,那就是为您的每个项目创建一个“虚拟环境”。

虚拟环境

虚拟环境是一个文件夹,其中放置了运行应用程序所需的所有文件。

例如,您在应用程序中使用的 Python、PIP 和社区包。

最后,可以在任何机器或服务器上重新创建此环境,并使用所有正确版本运行您的代码!

什么是虚拟环境?

不要被这个大牌吓到。虚拟环境只是一个文件夹,其中包含 Python 的 x 版本(例如 3.9)和应用程序正常运行所需的其他包的 x 版本。

每个应用程序都有自己的虚拟环境(文件夹),以保留其正常运行所需的库。

创建虚拟环境示例

在处理 Python 项目时,您必须使用多个库,例如 FastAPI、Flask 或 Django 等。

根据项目的创建日期。例如,FastAPI 库在其他项目中的版本号可能不完全相同。

如何让每个项目都有自己的 Python 版本和自己的库版本?

我们将使用虚拟环境。

虚拟环境允许您在文件夹/项目中安装 Python 和 python 库,而不会影响其他文件夹/项目。

Python 为您提供了一个允许您创建虚拟环境的系统。

创建并激活环境后,所有已安装的库只能在其所属的环境中使用。

如何创建虚拟环境

通常我们在项目文件夹中放置一个虚拟环境。

为我们的项目创建和访问文件夹

$ mkdir learn-python
$ cd learn-pythob

进入全屏模式 退出全屏模式

现在,您可以从此文件夹创建将附加到项目的虚拟环境

$ python3 -m venv env

进入全屏模式 退出全屏模式

在这里,我们使用选项模块 venv 启动 python3。 env 是我们给虚拟环境起的名字。

创建虚拟环境后,您可以激活它:

macOS / Linux

$ source env/bin/activate

进入全屏模式 退出全屏模式

视窗

$ env\\Scripts\\activate.bat

进入全屏模式 退出全屏模式

就是这样!您现在已经为您的项目创建了一个 Python 虚拟环境。通常,终端会通过显示其名称来告诉您您的环境已激活。

请注意,要停用虚拟环境,您必须运行

$ deactivate

进入全屏模式 退出全屏模式

结论

今天就到这里,我会每隔一天左右发一篇新文章。为确保您不会错过任何内容,您可以在 Twitter 上关注我:关注@EricLeCodeur

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐