模块和包
在Python中,模块和包是组织代码的一种方式,可以帮助你的代码保持结构清晰和易于维护。让我们用一个简单的例子来解释它们。
模块(Module)
想象一下,你正在建造一个乐高城堡。每个小乐高积木块可以被看作是一个模块。每个积木块都有特定的形状和功能,你可以用它来构建城堡的一部分。在Python中,一个模块就是一个包含Python代码的文件(以.py
结尾)。这个文件可能包含函数、类、变量等。
假设你有一个名为 math_tools.py
的文件,其中包含了一些数学相关的函数。
# math_tools.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
这个 math_tools.py
文件就是一个模块。你可以在其他Python文件中导入并使用它。
# another_file.py
import math_tools
= math_tools.add(3, 4)
result print(result) # 输出: 7
包(Package)
继续乐高的比喻,如果你有很多乐高积木块,你可能会把它们按类型或用途分组放在不同的盒子里。在Python中,一个包是一个包含模块的目录。这个目录会有一个特殊的文件 __init__.py
(可以是空的),用来告诉Python这个目录应该被视为一个包。 : 假设你现在有一个名为 math_package
的目录,里面有多个模块(文件),比如 addition.py
和 subtraction.py
,还有一个 __init__.py
文件。
math_package/
│
├── __init__.py
├── addition.py
└── subtraction.py
在 addition.py
中,你可能有一个加法函数,而在 subtraction.py
中有一个减法函数。你可以按照以下方式导入和使用这些模块:
# another_file.py
from math_package import addition, subtraction
= addition.add(10, 5)
result print(result) # 输出: 15
在这个例子中,math_package
就是一个包,它帮助你组织相关的模块(如 addition
和 subtraction
),使得代码结构更清晰、更易于管理。
- 模块 是单个文件,包含Python代码,可以是函数、类或变量。
- 包 是一个目录,用于组织模块,使得代码结构更好,更易于维护。
第三方包管理工具pip
pip 是一款 Python 自带的第三方包管理工具。它本身也是一个包,当用户安装 Python 时该包会自动安装。通过 pip 工具,可以方便地从Python Package Index及类似的网站安装、更新、删除各种包。
常用操作
以下是一个表格,总结了 pip
(Python包管理工具)的一些基本用法:
命令 | 描述 |
---|---|
pip install package_name |
安装名为 package_name 的包 |
pip uninstall package_name |
卸载名为 package_name 的包 |
pip list |
列出已安装的包 |
pip show package_name |
显示名为 package_name 的包的详细信息 |
pip search keyword |
搜索与关键词相关的包(注:某些pip版本可能不支持此功能) |
pip install package_name --upgrade |
升级名为 package_name 的包 |
pip install -r requirements.txt |
根据 requirements.txt 文件安装多个依赖包 |
pip freeze |
生成当前环境中已安装包的列表(常用于创建 requirements.txt 文件) |
pip freeze > requirements.txt |
将已安装包的列表输出到 requirements.txt 文件中 |
pip install package_name==version_number |
安装特定版本的包 |
pip源的选择
有些情况下,比如网络不给力,连接超时、防火墙阻挡等等各种原因,我们可能无法从Python官方的PyPi仓库进行pip安装,这时候可以选择国内的第三方源。使用方法:
pip install -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com pillow
需要注意的是,除了最后的pillow用你所期望的库名替代外,前面的参数都是固定写法,包括参数顺序。
如果不想每次用 pip 都加上-i https://pypi.tuna.tsinghua.edu.cn/simple
,那么可以把国内源设为默认,做法是:
# 清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 阿里源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/