Python:模块和包模块和包
Python 速成课程是免费的,将在 dev.to 上发布。我会每两天左右发表一篇新文章。为了不错过任何东西,您可以在 Twitter 上关注我:关注@EricLeCodeur 模块和包 创建自己的模块 到目前为止,我们已经使用了 Python 中已经包含的几个模块。现在是时候创建我们自己的模块了。 当我们创建 Python 应用程序时,我们不会将所有代码放在一个文件中。对于可读性和可重用性的问题
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
更多推荐
所有评论(0)